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 AUTHORITYSYSTEM'
,'NT SERVICEMSSQLSERVER'
,'NT SERVICESQLSERVERAGENT'
) 
  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
原文地址:https://www.cnblogs.com/JinweiChang/p/10594450.html