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
Post a Comment