- Artigo
- 12/17/2021
- 4 minutos de leitura
-
- M
- r
- c
- p
aplica-se a: SQL Server (todas as versões) Azure 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
- usando o SQL Server Management Studio
- para visualizar a definição de um acionador DML
- para visualizar as dependências de um acionador DML
- usando Transact-SQL
- para visualizar a definição de um gatilho DML
- Para visualizar as dependências de um gatilho DML
- para visualizar informações sobre gatilhos DML no banco de dados
- para visualizar informações sobre eventos que acionam um gatilho DML
- Ver Também
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
-
no Object Explorer, conecte-se a uma instância do mecanismo de banco de dados e expanda essa instância.
-
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.
-
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
-
no Object Explorer, conecte-se a uma instância do mecanismo de banco de dados e expanda essa instância.
-
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.
-
expanda gatilhos, clique com o botão direito do mouse no gatilho desejado e clique em Exibir dependências.
-
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.
-
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.
-
para fechar a janela dependências de Objetos, clique em OK.
usando Transact-SQL
para visualizar a definição de um gatilho DML
-
conecte-se ao mecanismo de banco de dados.
-
na barra Padrão, clique em Nova Consulta.
-
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
-
Ligue para o Mecanismo de Banco de dados.
-
na barra Padrão, clique em Nova Consulta.
-
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
-
conecte-se ao mecanismo de banco de dados.
-
na barra Padrão, clique em Nova Consulta.
-
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
-
conecte-se ao mecanismo de banco de dados.
-
na barra Padrão, clique em Nova Consulta.
-
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)