SQL Server'da oluşturduğunuz çok sayıda trigger ile mücadele etmekte zorlanmaya başladıysanız ve tüm trigger'ları listeleyerek olası mükerrer işlemler yapıp yapmadığınızı kontrol etmek istiyorsanız aşağıdaki sql kodunu kullanarak tüm mevcut trigger'ları listeleyebilirsiniz.
1. Yol:
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'
Alternatif Kod:
select Tables.Name as TableName,Triggers.name as TriggerName
from sysobjects Triggers,sysobjects Tables
where Triggers.xtype='TR'
AND Triggers.parent_obj = Tables.id
order by Tables.name
Editör editi: sitedeki bazı diğer benzer başlıklar için;
bkz: SQL Server'da tablonun mevcut seed değerini görmek
bkz: SQL Server'da veritabanı script'ini verilerle oluşturmak
bkz: Sql Server'da Using ifadesi ne işe yarar?
bkz: Sql Server'da Html etiketleri nasıl kaldırılabilir?
bkz: Sql Server'da prosedürleri topluca seçerek silmek
bkz: Sql Server'da Dark Theme nasıl aktive edilir?