SQL Server’da Tüm Triggerları Listeleme
Herkese merhaba,
SQL Server’da bazı durumlarda veritabanınıza ait tüm triggerları listelemeniz gerekiyor olabilir.
Aşağıdaki kod yardımı ile bu işlemi rahatlıkla yapabilirsiniz.
Not : İşlem öncesi ilgili veritabanınızı seçtiğinizden emin olun.
SELECT trg.name AS trigger_name,
SCHEMA_NAME(tab.schema_id) + '.' + tab.name AS [table],
CASE
WHEN is_instead_of_trigger = 1 THEN
'Instead of'
ELSE
'After'
END AS [activation],
(CASE
WHEN OBJECTPROPERTY(trg.object_id, 'ExecIsUpdateTrigger') = 1 THEN
'Update '
ELSE
''
END + CASE
WHEN OBJECTPROPERTY(trg.object_id, 'ExecIsDeleteTrigger') = 1 THEN
'Delete '
ELSE
''
END + CASE
WHEN OBJECTPROPERTY(trg.object_id, 'ExecIsInsertTrigger') = 1 THEN
'Insert'
ELSE
''
END
) AS [event],
CASE
WHEN trg.parent_class = 1 THEN
'Table trigger'
WHEN trg.parent_class = 0 THEN
'Database trigger'
END [class],
CASE
WHEN trg.[type] = 'TA' THEN
'Assembly (CLR) trigger'
WHEN trg.[type] = 'TR' THEN
'SQL trigger'
ELSE
''
END AS [type],
CASE
WHEN is_disabled = 1 THEN
'Disabled'
ELSE
'Active'
END AS [status],
OBJECT_DEFINITION(trg.object_id) AS [definition]
FROM sys.triggers trg
LEFT JOIN sys.objects tab
ON trg.parent_id = tab.object_id
ORDER BY trg.name;
Yukarıdaki kod bloğunu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.
Görüldüğü üzere tüm Trigger’lar listelenmiş oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.