Необходимо получить список триггеров, которые сработали при операции удаления - PullRequest
0 голосов
/ 16 января 2019

В моей базе данных есть количество триггеров. Из этого мне нужно получить список триггеров, которые срабатывали при операции удаления. Так что любой может предоставить мне такой скрипт, чтобы получить список триггеров, которые выполнялись при операции удаления.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 января 2019

В моей базе данных нет триггеров.

Если в вашей базе данных нет триггеров, то при удалении ничего не сработало бы. Если вы заметили, что дочерние записи были удалены при удалении родительской записи, тогда для вашего FOREIGN KEY может быть установлено ON DELETE CASCADE. Вы можете прочитать об этом здесь.

Если вы хотите перечислить все триггеры в своей базе данных (даже если вы сказали, что у вас их нет), , тогда этот ответ является хорошим способом сделать это.

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' 
...