SQL Server Trigger Listesi

Aşağıdaki script Sql server attachlı olan tüm database lerdeki trigger ların listesini verir

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql = @sql + '
USE ' + QUOTENAME(name) + ';

IF EXISTS (SELECT 1 FROM sys.triggers WHERE is_ms_shipped = 0)
BEGIN
    SELECT
        ''' + name + ''' AS DatabaseName,
        s.name AS SchemaName,
        o.name AS ObjectName,
        o.type_desc AS ObjectType,
        tr.name AS TriggerName,
        tr.is_instead_of_trigger,
        tr.is_disabled,
        tr.create_date,
        tr.modify_date
    FROM sys.triggers tr
    JOIN sys.objects o ON tr.parent_id = o.object_id
    JOIN sys.schemas s ON o.schema_id = s.schema_id
    WHERE tr.is_ms_shipped = 0
      AND (
            tr.is_instead_of_trigger = 1
            OR OBJECT_DEFINITION(tr.object_id) LIKE ''%INSERT%''
            OR OBJECT_DEFINITION(tr.object_id) LIKE ''%DELETE%''
          );
END
'
FROM sys.databases
WHERE state = 0
AND database_id > 4;

EXEC sp_executesql @sql;