sql server 2008 - How to get the script of the stored procedure when a ddl trigger fires? -


i'm writing ddl triggers create , alter stored procedures.

for create stored procedure trigger, want script create statement. alter stored procedure trigger, want new "create stored procedure" statement instead of alter statement.

is there way it? first one, know eventdata() can do. second one, not sure.

within ddl trigger, can "after" image of procedure using:

declare @eventdata xml = eventdata();  select object_definition(object_id(    @eventdata.value('(/event_instance/schemaname)[1]', 'nvarchar(255)')    + '.' +     @eventdata.value('(/event_instance/objectname)[1]', 'nvarchar(255)') )); 

so can assign output variable , make part of insert (i assume logging kind of ddl audit table). suggested in comment, can do:

declare @eventdata xml = eventdata();  select stuff(@eventdata.value('(/event_instance/tsqlcommand)[1]', 'nvarchar(max)'),    1, 5, 'create'); 

(these both assume ddl trigger limited alter_procedure - otherwise want check event type before perform these operations.)


Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -