Visualizar todos os gatilhos de uma base no SQL Server

Olá pessoal…

Hoje vou mostrar como visualizar todos os gatilhos (triggers) de uma base SQL Server.

SQL Server

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.

Dan (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta