Descripción de los desencadenadores DDL

Actualizado: 14 de abril de 2006

Los desencadenadores DDL, al igual que los desencadenadores habituales, activan procedimientos almacenados como respuesta a un evento. Sin embargo, a diferencia de los desencadenadores DML, no se activan como respuesta a las instrucciones UPDATE, INSERT o DELETE de una tabla o vista. En cambio, sí se activan en respuesta a diversos eventos del lenguaje de definición de datos (DDL). Estos eventos corresponden principalmente a instrucciones Transact-SQL que comienzan por las palabras clave CREATE, ALTER y DROP. Determinados procedimientos almacenados del sistema que realizan operaciones de estilo DDL también pueden activar desencadenadores DDL.

ms175941.note(es-es,SQL.90).gifImportante:
Pruebe los desencadenadores DDL para determinar su respuesta a los procedimientos almacenados del sistema que se ejecutan. Por ejemplo, la instrucción CREATE TYPE y el procedimiento almacenado sp_addtype activarán un desencadenador DDL creado en un evento CREATE_TYPE. Sin embargo, el procedimiento almacenado sp_rename no activa ningún desencadenador DDL.

Los desencadenadores DDL pueden utilizarse para tareas administrativas como auditar y regular las operaciones de base de datos.

Utilice los desencadenadores DDL cuando:

  • Desee evitar determinados cambios en el esquema de base de datos.
  • Desee que ocurra algún evento en la base de datos como respuesta a un cambio realizado en el esquema de base de datos.
  • Desee registrar cambios o eventos del esquema de base de datos.

Los desencadenadores DDL sólo se activan cuando se ejecutan las instrucciones DDL que los desencadenan. Los desencadenadores DDL no se pueden utilizar como desencadenadores INSTEAD OF.

En el siguiente ejemplo se muestra el uso de un desencadenador DDL para evitar que se modifique o quite una tabla de una base de datos:

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

Los desencadenadores DDL pueden activarse en respuesta a un evento de Transact-SQL procesado en la base de datos actual o en el servidor actual. El ámbito del desencadenador depende del evento. Para obtener más información acerca del ámbito de un desencadenador DDL, vea Diseñar desencadenadores DDL.

Para ver un ejemplo de desencadenadores DDL que está disponible en la base de datos de ejemplo AdventureWorks, en el Explorador de objetos de SQL Server Management Studio, abra la carpeta Database Triggers, que se encuentra en la carpeta Programmability de la base de datos AdventureWorks. Haga clic con el botón secundario en ddlDatabaseTriggerLog y seleccione Incluir desencadenador de base de datos como. De forma predeterminada, el desencadenador DDL ddlDatabaseTriggerLog está deshabilitado.

Vea también

Conceptos

Descripción de los desencadenadores DDL frente a los desencadenadores DML
Implementar desencadenadores DDL

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

14 de abril de 2006

Contenido nuevo:
  • Se agregó una nota importante en la que se recomienda probar los desencadenadores DDL para conocer su respuesta a los procedimientos almacenados del sistema que se ejecutan.