Olá pessoal…
Hoje vou mostrar como visualizar todos os gatilhos (triggers) de uma base SQL Server.
Primeiramente é necessário fazer um select na sysobjects, filtrando o tipo igual a TR, e se quiser visualizar a tabela, deve-se fazer um join na sys.tables.
Abaixo a consulta desenvolvida:
SELECT
obj.name AS trigger_name
,USER_NAME(obj.uid) AS trigger_owner
,schem.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 obj
INNER JOIN sysusers users
ON obj.uid = users.uid
INNER JOIN sys.tables tabs
ON obj.parent_obj = tabs.object_id
INNER JOIN sys.schemas schem
ON tabs.schema_id = schem.schema_id
WHERE obj.type = 'TR'
Referência:
stackoverflow.com
Bom pessoal, por hoje é só.
Abraços e até a próxima.
