Obter Informações Sobre os Gatilhos DML

  • Artigo
  • 12/17/2021
  • 4 minutos de leitura
    • M
    • r
    • c
    • p
É esta página útil?Obrigado .

aplica-se a: yesSQL Server (todas as versões) SimAzure SQL Database

Este tópico descreve como obter informações sobre os gatilhos DML no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Essas informações podem incluir os tipos de gatilhos em uma tabela, o nome de um gatilho, seu proprietário e a data em que foi criado ou modificado. Se o gatilho não foi criptografado quando foi criado, você obtém a definição do gatilho. Você pode usar a definição para ajudá-lo a entender como um gatilho afeta a tabela em que está definido. Além disso, você pode descobrir os objetos que um gatilho específico usa. Com essas informações, você pode identificar os objetos que afetam o gatilho se eles forem alterados ou excluídos no banco de dados.

Neste Tópico

  • Antes de começar:

    Segurança

  • Para obter informações sobre gatilhos DML, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de Começar

Segurança

Permissões

sys.banco.módulos, sistemas.objeto, sys.gatilhos, sys.eventos, sys.trigger_events
a visibilidade dos metadados nas visualizações de catálogo é limitada às seguráveis que um usuário possui ou nas quais o usuário recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.

OBJECT_DEFINITION, OBJECTPROPERTY, sp_helptext
requer adesão à função pública. A definição de objetos do Usuário é visível para o proprietário do objeto ou beneficiários que têm qualquer uma das seguintes permissões: alterar, controlar, assumir a propriedade ou visualizar a definição. Essas permissões são mantidas implicitamente por membros das funções de banco de dados fixo db_owner, db_ddladmin e db_securityadmin.

sys.sql_expression_dependencies
requer permissão de definição de visualização no banco de dados e selecione permissão no sys.sql_expression_dependencies para o banco de dados. Por padrão, a permissão SELECT é concedida apenas aos membros da função de banco de dados fixo db_owner. Quando as permissões de definição de seleção e visualização são concedidas a outro usuário, o beneficiário pode visualizar todas as dependências no banco de dados.

usando o SQL Server Management Studio

para visualizar a definição de um acionador DML

  1. no Object Explorer, conecte-se a uma instância do mecanismo de banco de dados e expanda essa instância.

  2. expanda o banco de dados desejado, expanda tabelas e, em seguida, expanda a tabela que contém o acionador para o qual você deseja visualizar a definição.

  3. expanda gatilhos, clique com o botão direito do mouse no gatilho desejado e clique em Modificar. A definição do gatilho DML aparece na janela de consulta.

para visualizar as dependências de um acionador DML

  1. no Object Explorer, conecte-se a uma instância do mecanismo de banco de dados e expanda essa instância.

  2. expanda o banco de dados desejado, expanda tabelas e, em seguida, expanda a tabela que contém o acionador e suas dependências que você deseja visualizar.

  3. expanda gatilhos, clique com o botão direito do mouse no gatilho desejado e clique em Exibir dependências.

  4. na janela dependências de objetos, para visualizar os objetos que dependem do acionador DML, selecione objetos que dependem do nome do acionador DML <>. Os objetos aparecem na área dependências.

    para visualizar os objetos dos quais o DML depende, selecione objetos dos quais <o nome do gatilho DML> depende. Os objetos aparecem na área dependências. Expanda cada nó para ver todos os objetos.

  5. para obter informações sobre um objeto que aparece na área dependências, clique no objeto. No campo objeto selecionado, as informações são fornecidas nas caixas Nome, Tipo E Tipo de Dependência.

  6. para fechar a janela dependências de Objetos, clique em OK.

usando Transact-SQL

para visualizar a definição de um gatilho DML

  1. conecte-se ao mecanismo de banco de dados.

  2. na barra Padrão, clique em Nova Consulta.

  3. copie e cole um dos exemplos a seguir na janela de consulta e clique em Executar. Cada exemplo mostra como você pode visualizar a definição do gatilho iuPerson.

USE AdventureWorks2012; GO SELECT definition FROM sys.sql_modules WHERE object_id = OBJECT_ID(N'Person.iuPerson'); GO 
USE AdventureWorks2012; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.iuPerson')) AS ObjectDefinition; GO 
USE AdventureWorks2012; GO EXEC sp_helptext 'Person.iuPerson' GO 

Para visualizar as dependências de um gatilho DML

  1. Ligue para o Mecanismo de Banco de dados.

  2. na barra Padrão, clique em Nova Consulta.

  3. copie e cole um dos exemplos a seguir na janela de consulta e clique em Executar. Cada exemplo mostra como você pode visualizar as dependências do acionador iuPerson.

USE AdventureWorks2012; GO SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name, o.type_desc AS referencing_desciption, COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id, referencing_class_desc, referenced_class_desc, referenced_server_name, referenced_database_name, referenced_schema_name, referenced_entity_name, COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name, is_caller_dependent, is_ambiguous FROM sys.sql_expression_dependencies AS sed INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id WHERE referencing_id = OBJECT_ID(N'Person.iuPerson'); GO 

para visualizar informações sobre gatilhos DML no banco de dados

  1. conecte-se ao mecanismo de banco de dados.

  2. na barra Padrão, clique em Nova Consulta.

  3. copie e cole um dos exemplos a seguir na janela de consulta e clique em Executar. Cada exemplo mostra como você pode visualizar informações sobre gatilhos DML (TR) no banco de dados.

USE AdventureWorks2012; GO SELECT name, parent_id, create_date, modify_date, is_instead_of_trigger FROM sys.triggers WHERE type = 'TR'; GO 
USE AdventureWorks2012; GO SELECT name, object_id, schema_id, parent_object_id, type_desc, create_date, modify_date, is_published FROM sys.objects WHERE type = 'TR'; GO 
USE AdventureWorks2012; GO SELECT OBJECTPROPERTY(OBJECT_ID(N'Person.iuPerson'), 'ExecIsInsteadOfTrigger'); GO 

para visualizar informações sobre eventos que acionam um gatilho DML

  1. conecte-se ao mecanismo de banco de dados.

  2. na barra Padrão, clique em Nova Consulta.

  3. copie e cole um dos exemplos a seguir na janela de consulta e clique em Executar. Cada exemplo mostra como você pode visualizar os eventos que disparam o gatilho iuPerson.

USE AdventureWorks2012; GO SELECT object_id, type, type_desc, is_trigger_event, event_group_type, event_group_type_desc FROM sys.events WHERE object_id = OBJECT_ID('Person.iuPerson'); GO 
USE AdventureWorks2012; GO SELECT object_id, type,is_first, is_last FROM sys.trigger_events WHERE object_id = OBJECT_ID('Person.iuPerson'); GO 

Ver Também

CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ATIVAR o GATILHO (Transact-SQL)
DESATIVAR o GATILHO (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_rename (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers(Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)
OBJECTPROPERTY (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)

Write a Comment

O seu endereço de email não será publicado.