Share via


Descripción de notificaciones de eventos frente a desencadenadores

En la siguiente tabla, se comparan y se establecen diferencias entre los desencadenadores y las notificaciones de eventos.

DESENCADENADORES NOTIFICACIONES DE EVENTOS

Los desencadenadores DML responden a eventos DML (de lenguaje de manipulación de datos). Los desencadenadores DDL responden a eventos DDL (de lenguaje de definición de datos).

Las notificaciones de eventos responden a eventos DDL y a un subconjunto de eventos de traza de SQL.

Los desencadenadores pueden ejecutar un código administrado de Transact-SQL o de Common Language Runtime (CLR).

Las notificaciones de eventos no ejecutan códigos. En cambio, envían mensajes xml a un servicio de Service Broker.

Los desencadenadores se procesan de manera sincrónica, dentro del ámbito de las transacciones que los accionan.

Las notificaciones de eventos se pueden procesar de manera asincrónica y no se ejecutan en el ámbito de las transacciones que las accionan.

El consumidor de un desencadenador está estrechamente unido al evento que acciona el desencadenador.

El consumidor de una notificación de eventos está desvinculado del evento que acciona la notificación.

Los desencadenadores se deben procesar en el servidor local.

Las notificaciones de eventos se pueden procesar en un servidor remoto.

Los desencadenadores se pueden revertir.

Las notificaciones de eventos no se pueden revertir.

Los nombres de los desencadenadores DML pertenecen al ámbito del esquema. Los nombres de los desencadenadores DLL pertenecen al ámbito de la base de datos o del servidor.

Los nombres de las notificaciones de eventos pertenecen al ámbito del servidor o de la base de datos. Las notificaciones de eventos de un evento QUEUE_ACTIVATION pertenecen al ámbito de una cola específica.

Los desencadenadores DML pertenecen al mismo propietario que el de las tablas a las que fueron aplicados.

El propietario de una notificación de eventos de una cola puede ser diferente del propietario del objeto al que fue aplicada.

Los desencadenadores admiten la cláusula EXECUTE AS.

Las notificaciones de eventos no admiten la cláusula EXECUTE AS.

La información del evento del desencadenador DDL se puede capturar con la función EVENTDATA, que devuelve un tipo de dato xml.

Las notificaciones de eventos envían información de evento xml a un servicio de Service Broker. La información utiliza el formato del mismo esquema que el de la función EVENTDATA.

Los metadatos acerca de los desencadenadores se encuentran en las vistas de catálogo sys.triggers y sys.server_triggers.

Los metadatos sobre las notificaciones de eventos se encuentran en las vistas de catálogo sys.event_notifications y sys.server_event_notifications.

Vea también

Conceptos

Conceptos básicos de las notificaciones de eventos

Ayuda e información

Obtener ayuda sobre SQL Server 2005