Uma trigger é basicamente um tipo de procedure que é automaticamente executada quando algum evento ocorre no banco de dados SQL Server.
Existem vários tipos de triggers, triggers de DDL, DML e Triggers de logon.
Triggers DDL são executados em resposta a uma variedade de eventos de DDL. Esses eventos correspondem principalmente às instruções CREATE, ALTER e DROP do Transact-SQL e algumas procedures no sistema que executam operações do tipo DDL. Triggers de logon dispara em resposta ao evento LOGON que é gerado quando uma sessão de usuário está sendo estabelecida. Essas são as mais utilizadas.
Mas chega de enrolação e vamos ao que interessa.
Como eu posso listar todas as triggers em uma base de dados? Sendo objetivo vou colocar abaixo o script que procura:
SELECT
sysobjects.name AS NomeDaTrigger
,USER_NAME(sysobjects.uid) AS OwnerDaTrigger
,s.name AS SchemaDaTabela
,OBJECT_NAME(parent_obj) AS NomeDaTabela
,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 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'
IsUpdate – Significa que a trigger é disparada em caso de updates na tabela.
IsDelete – Significa que a trigger é disparada em caso de delete na tabela.
IsInsert – Significa que a trigger é disparada em caso de insert na tabela.
IsInsteadOf – Geralmente, a trigger INSTEAD é definido em uma exibição para inserir, atualizar ou apagar dados em uma ou mais tabelas base.
Disabled – Se a trigger está desativada ou não.
SELECT
o.name AS NomeDaTrigger
,'x' AS OwnerDaTrigger
,s.name AS SchemaDaTabela
,OBJECT_NAME(o.parent_obj) AS NomeDaTabela
,OBJECTPROPERTY(o.id, 'ExecIsUpdateTrigger') AS isupdate
,OBJECTPROPERTY(o.id, 'ExecIsDeleteTrigger') AS isdelete
,OBJECTPROPERTY(o.id, 'ExecIsInsertTrigger') AS isinsert
,OBJECTPROPERTY(o.id, 'ExecIsAfterTrigger') AS isafter
,OBJECTPROPERTY(o.id, 'ExecIsInsteadOfTrigger') AS isinsteadof
,OBJECTPROPERTY(o.id, 'ExecIsTriggerDisabled') AS [disabled]
FROM sysobjects AS o
INNER JOIN sysobjects AS o2
ON o.parent_obj = o2.id
INNER JOIN sysusers AS s
ON o2.uid = s.uid
WHERE o.type = 'TR'
Para listar todas as triggers em todas as bases de dados execute o script a seguir:
DECLARE @command varchar(1000)
SELECT @command = 'USE ? SELECT
DB_NAME() AS DatabaseName
,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'''
EXEC sp_MSforeachdb @command
Use triggers com moderação.
Utforska Topplista: Casinon utan licens med flest Megaways-slotsDet är ingen hemlighet att Megaways-slots har blivit…
ContentCultivo del pimiento¿Cómo beneficia la salud el pimentón ahumado?Enfermedades causadas por bacterias y virusPimentón de…
Content¿Cuáles son los mejores Nuevos Juegos gratuitos online?Qué es Poki? Ofrecemos acceso instantáneo a todos…
ContentErzählen Sie Ihre Geschichte: von Kampanien bis ins Herz Brasiliens, die Geschichte der Familie LandriEl…
ContentPrefeitura anuncia novo polo no Parque Eduardo Campos, no Pina, e espalha shows pela cidadeMarilia…
ContentStadtrundgänge Die Universitätsstadt Tübingen sucht seeger tübingen juwelier regelmäßig Verwaltungskräfte in verschiedenen Organisationseinheiten. Die Universitätsstadt…