Ottieni informazioni sui trigger DMLGet Information About DML Triggers

In questo argomento viene descritto come ottenere informazioni sui trigger DML in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to get information about DML triggers in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Queste informazioni possono includere i tipi di trigger in una tabella, nonché il nome, il proprietario e la data di creazione o modifica di un trigger.This information can include the types of triggers on a table, the name of a trigger, its owner and the date it was created or modified. Se il trigger non è stato crittografato al momento della creazione, se ne ottiene la definizione.If the trigger was not encrypted when it was created, you obtain the definition of the trigger. È possibile utilizzare la definizione per comprendere gli effetti del trigger sulla tabella su cui è stato definito.You can use the definition to help you understand how a trigger affects the table up on which it is defined. È inoltre possibile rilevare gli oggetti utilizzati da un trigger specifico.Also, you can find out the objects that a specific trigger uses. Con queste informazioni, è possibile identificare gli oggetti che influiscono sul trigger qualora vengano modificati o eliminati dal database.With this information, you can identify the objects that affect the trigger if they are changed or deleted in the database.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Sicurezza Security

Autorizzazioni Permissions

sys.sql.modules, sys.object, sys.triggers, sys.events, sys.trigger_eventssys.sql.modules, sys.object, sys.triggers, sys.events, sys.trigger_events
La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni.The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. Per altre informazioni, vedere Metadata Visibility Configuration. For more information, see Metadata Visibility Configuration.

OBJECT_DEFINITION, OBJECTPROPERTY, sp_helptextOBJECT_DEFINITION, OBJECTPROPERTY, sp_helptext
È richiesta l'appartenenza al ruolo public .Requires membership in the public role. La definizione degli oggetti utente è visibile al proprietario degli oggetti o agli utenti autorizzati che dispongono di una delle autorizzazioni seguenti: ALTER, CONTROL, TAKE OWNERSHIP o VIEW DEFINITION.The definition of user objects is visible to the object owner or grantees that have any one of the following permissions: ALTER, CONTROL, TAKE OWNERSHIP, or VIEW DEFINITION. Queste autorizzazioni sono assegnate implicitamente ai membri dei ruoli predefiniti del database db_owner, db_ddladmine db_securityadmin .These permissions are implicitly held by members of the db_owner, db_ddladmin, and db_securityadmin fixed database roles.

sys.sql_expression_dependenciessys.sql_expression_dependencies
Sono richieste l'autorizzazione VIEW DEFINITION sul database e l'autorizzazione SELECT su sys.sql_expression_dependencies per il database.Requires VIEW DEFINITION permission on the database and SELECT permission on sys.sql_expression_dependencies for the database. L'autorizzazione SELECT è concessa per impostazione predefinita solo ai membri del ruolo predefinito del database db_owner .By default, SELECT permission is granted only to members of the db_owner fixed database role. Quando le autorizzazioni SELECT e VIEW DEFINITION vengono concesse a un altro utente, l'utente autorizzato può visualizzare tutte le dipendenze nel database.When SELECT and VIEW DEFINITION permissions are granted to another user, the grantee can view all dependencies in the database.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per visualizzare la definizione di un trigger DMLTo view the definition of a DML trigger

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine , quindi espanderla.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine and then expand that instance.

  2. Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger di cui si desidera visualizzare la definizione.Expand the database that you want, expand Tables, and then expand the table that contains the trigger for which you want to view the definition.

  3. Espandere Trigger, fare clic con il pulsante destro del mouse sul trigger desiderato, quindi scegliere Modifica.Expand Triggers, right-click the trigger you want, and then click Modify. La definizione del trigger DML viene visualizzata nella finestra Query.The definition of the DML trigger appears in the query window.

Per visualizzare le dipendenze di un trigger DMLTo view the dependencies of a DML trigger

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine , quindi espanderla.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine and then expand that instance.

  2. Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger e le relative dipendenze che si desidera visualizzare.Expand the database that you want, expand Tables, and then expand the table that contains the trigger and its dependencies that you want to view.

  3. Espandere Trigger, fare clic con il pulsante destro del mouse sul trigger desiderato, quindi scegliere Visualizza dipendenze.Expand Triggers, right-click the trigger you want, and then click View Dependencies.

  4. Nella finestra di dialogo Dipendenze oggetto selezionare Oggetti che dipendono da <nome trigger DML> per visualizzare gli oggetti che dipendono dal trigger DML.In the Object Dependencies window, to view the objects that depend on the DML trigger, select Objects that depend on <DML trigger name>. Gli oggetti vengono visualizzati nell'area Dipendenze .The objects appear in the Dependencies area.

    Per visualizzare gli oggetti da cui dipende il trigger DML, selezionare Oggetti da cui dipende <nome trigger DML>.To view the objects on which the DML depends, select Objects on which <DML trigger name> depends. Gli oggetti vengono visualizzati nell'area Dipendenze .The objects appear in the Dependencies area. Espandere ogni nodo per visualizzare tutti gli oggetti.Expand each node to see all the objects.

  5. Per ottenere informazioni su un oggetto visualizzato nell'area Dipendenze , fare clic sull'oggetto.To obtain information about an object that appears in the Dependencies area, click the object. Nel campo Oggetto selezionato le informazioni vengono fornite nelle caselle Nome, Tipoe Tipo dipendenza .In the Selected object field, information is provided in the Name, Type, and Dependency type boxes.

  6. Per chiudere la finestra Dipendenze oggetto fare clic su OK.To close the Object Dependencies window, click OK.

Utilizzo di Transact-SQL Using Transact-SQL

Per visualizzare la definizione di un trigger DMLTo view the definition of a DML trigger

  1. Connettersi al Motore di databaseDatabase Engine.Connect to the Motore di databaseDatabase Engine.

  2. Dalla barra Standard fare clic su Nuova query.From the Standard bar, click New Query.

  3. Copiare e incollare uno degli esempi seguenti nella finestra della query, quindi fare clic su Esegui.Copy and paste one of the following examples into the query window and click Execute. In ogni esempio viene illustrato come visualizzare la definizione del trigger iuPerson .Each example shows how you can view the definition of the iuPerson trigger.

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  

Per visualizzare le dipendenze di un trigger DMLTo view the dependencies of a DML trigger

  1. Connettersi al Motore di databaseDatabase Engine.Connect to the Motore di databaseDatabase Engine.

  2. Dalla barra Standard fare clic su Nuova query.From the Standard bar, click New Query.

  3. Copiare e incollare uno degli esempi seguenti nella finestra della query, quindi fare clic su Esegui.Copy and paste one of the following examples into the query window and click Execute. In ogni esempio viene illustrato come visualizzare le dipendenze del trigger iuPerson .Each example shows how you can view the dependencies of iuPerson trigger.

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  

Per visualizzare informazioni sui trigger DML nel databaseTo view information about DML triggers in the database

  1. Connettersi al Motore di databaseDatabase Engine.Connect to the Motore di databaseDatabase Engine.

  2. Dalla barra Standard fare clic su Nuova query.From the Standard bar, click New Query.

  3. Copiare e incollare uno degli esempi seguenti nella finestra della query, quindi fare clic su Esegui.Copy and paste one of the following examples into the query window and click Execute. In ogni esempio viene illustrato come visualizzare informazioni sui trigger DML (TR) nel database.Each example shows how you can view information about DML triggers (TR) in the database.

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  

Per visualizzare informazioni sugli eventi che attivano un trigger DMLTo view information about events that fire a DML trigger

  1. Connettersi al Motore di databaseDatabase Engine.Connect to the Motore di databaseDatabase Engine.

  2. Dalla barra Standard fare clic su Nuova query.From the Standard bar, click New Query.

  3. Copiare e incollare uno degli esempi seguenti nella finestra della query, quindi fare clic su Esegui.Copy and paste one of the following examples into the query window and click Execute. In ogni esempio viene illustrato come visualizzare gli eventi che attivano il trigger iuPerson .Each example shows how you can view the events that fire the iuPerson trigger.

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  

Vedere ancheSee Also

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