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)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação