在我的数据库中有多个触发器。由此,我需要获取在Delete操作上触发的触发器列表。因此,任何人都可以向我提供这样的脚本,以获取在删除操作中执行的触发器列表。
谢谢。
答案 0 :(得分:3)
在我的数据库中没有触发器。
如果您的数据库没有任何触发器,则删除某些内容时不会触发任何触发器。如果在删除父记录时发现子记录已删除,则可以为ON DELETE CASCADE
设置FOREIGN KEY
。 You can read about that here.
如果您要列出数据库中的所有触发器(即使您说没有任何触发器),请then this answer is a good way to do it.
SELECT
sysobjects.name AS trigger_name
,USER_NAME(sysobjects.uid) AS trigger_owner
,s.name AS table_schema
,OBJECT_NAME(parent_obj) AS table_name
,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate
,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete
,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert
,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter
,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof
,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled]
FROM sysobjects
/*
INNER JOIN sysusers
ON sysobjects.uid = sysusers.uid
*/
INNER JOIN sys.tables t
ON sysobjects.parent_obj = t.object_id
INNER JOIN sys.schemas s
ON t.schema_id = s.schema_id
WHERE sysobjects.type = 'TR'