Bee*_*Guy 1 sql-server triggers stored-procedures sql-server-2008
每当存储过程被更改或创建时,我都想在触发器中捕获它以便随后执行一些操作。
我可以在 SQL Server 2008 中执行此操作吗?
谢谢。——比默
在数据库上创建触发器 tddl_storedprocevents
为了
CREATE_PROCEDURE、ALTER_PROCEDURE、DROP_PROCEDURE
作为
INSERT INTO AUDIT_TABLE(事件类型、SQLCommand 等)
选择 EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(max)')
, ETC
/*
事件数据()
选择 EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/PostTime)[1]', '日期时间')
, EVENTDATA().value('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(4)')
, EVENTDATA().value('(/EVENT_INSTANCE/ServerName)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/LoginType)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/SID)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'nvarchar(512)')
, EVENTDATA().value('(/EVENT_INSTANCE/IsPooled)[1]', 'nvarchar(1)')
ETC
*/
将触发器 tddl_storedprocevents 删除到数据库
如果您现在还没有阅读有关 EVENTDATA() 返回的 xml 对象的文档,我建议您阅读该文档。
希望能帮助到你。