SQL SERVER数据库级的触发器

CREATE TRIGGER [Object_Change_Trigger_DDL] ON database
FOR DROP_TABLE  
AS
DECLARE @EventData AS xml;
SELECT @EventData = EVENTDATA();
IF @EventData.value('(/EVENT_INSTANCE/LoginName)[1]','varchar(150)') NOT IN (
'sa'
,'NT AUTHORITY\SYSTEM'
,'NT SERVICE\MSSQLSERVER'
,'NT SERVICE\SQLSERVERAGENT'
) 
  BEGIN
   RAISERROR ('Do not use drop instructions. If you have any questions, please contact DBA.!', 16, 1)     
   ROLLBACK
  END

GO
ENABLE TRIGGER [Object_Change_Trigger_DDL] ON DATABASE
GO

select * from sys.triggers where parent_class=0


if exists(select * from sys.triggers where parent_class=0 and name='Object_Change_Trigger_DDL')

drop trigger Object_Change_Trigger_DDL on database        --删除名为 trigger_DDL_Table 的数据库级别的触发器
go

 

posted @ 2019-03-25 16:20  JinweiChang  阅读(483)  评论(0编辑  收藏  举报