Condividi tramite


Informazioni sui trigger DDL

Data aggiornamento: 14 aprile 2006

I trigger DDL, analogamente ai trigger normali, attivano stored procedure in risposta a un evento. Diversamente dai trigger DML, tuttavia, questi trigger non vengono attivati in risposta a istruzioni UPDATE, INSERT o DELETE in una tabella o una vista. Vengono invece attivati in risposta a un'ampia gamma di eventi DDL (Data Definition Language), che corrispondono principalmente a istruzioni Transact-SQL che iniziano con le parole chiave CREATE, ALTER e DROP. Alcune stored procedure di sistema che eseguono operazioni di tipo DDL possono inoltre attivare trigger DDL.

ms175941.note(it-it,SQL.90).gifImportante:
Testare i trigger DDL per determinarne la risposta alle stored procedure di sistema eseguite. Sia l'istruzione CREATE TYPE che la stored procedure sp_addtype, ad esempio, attivano un trigger DDL creato in un evento CREATE_TYPE. La stored procedure sp_rename, invece, non attiva trigger DDL.

I trigger DDL possono essere utilizzati per attività di amministrazione come il controllo e la regolazione delle operazioni sul database.

Utilizzare trigger DDL nei casi seguenti:

  • Si desidera impedire modifiche specifiche nello schema di database.
  • Si desidera che nel database si verifichi un cambiamento in risposta a una modifica nello schema di database.
  • Si desidera registrare modifiche o eventi nello schema di database.

I trigger DDL vengono attivati solo in seguito all'esecuzione delle istruzioni DDL che li hanno generati e non possono essere utilizzati come trigger INSTEAD OF.

Nell'esempio seguente viene illustrato l'utilizzo di un trigger DDL per impedire la modifica o l'eliminazione di qualsiasi tabella in un database.

CREATE TRIGGER safety 
ON DATABASE 
FOR DROP_TABLE, ALTER_TABLE 
AS 
   PRINT 'You must disable Trigger "safety" to drop or alter tables!' 
   ROLLBACK ;

I trigger DDL vengono attivati in risposta a un evento Transact-SQL elaborato nel database o nel server corrente. L'ambito del trigger dipende dall'evento. Per ulteriori informazioni sull'ambito dei trigger DDL, vedere Progettazione di trigger DDL.

Per ottenere un esempio di trigger DDL nel database di esempio AdventureWorks, in Esplora oggetti di SQL Server Management Studio aprire la cartella Trigger database, inclusa nella cartella Programmabilità del database AdventureWorks. Fare clic con il pulsante destro del mouse su ddlDatabaseTriggerLog e scegliere Crea script per trigger database. Per impostazione predefinita, il trigger DDL ddlDatabaseTriggerLog è disattivato.

Vedere anche

Concetti

Informazioni sulle differenze fra trigger DDL e trigger DML
Implementazione di trigger DDL

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

14 aprile 2006

Nuovo contenuto:
  • Aggiunta di una nota importante che consiglia di testare i trigger DDL per determinarne la risposta alle stored procedure di sistema eseguite.