Compartir a través de


Comparación de las notificaciones de eventos con los desencadenadores

En la siguiente tabla se comparan y contrastan los desencadenadores y las notificaciones de eventos.

DESENCADENADORES

NOTIFICACIONES DE EVENTOS

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

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

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

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

Los desencadenadores se procesan sincrónicamente, en el ámbito de las transacciones que los activan.

Las notificaciones de eventos pueden procesarse de forma asincrónica y no se ejecutan en el ámbito de las transacciones que las activan.

El consumidor de un desencadenador se une estrechamente al evento que lo activa.

El consumidor de una notificación de eventos se desliga del evento que lo activa.

Los desencadenadores se deben procesar en el servidor local.

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

Se pueden revertir los desencadenadores.

No se pueden revertir las notificaciones de eventos.

Los nombres de desencadenador DML se encuentran en el ámbito de esquema. Los nombres de desencadenador DDL se encuentran en el ámbito de la base de datos o del servidor.

Los nombres de notificación de eventos se encuentran en el ámbito de la base de datos o del servidor. Las notificaciones de eventos en un evento QUEUE_ACTIVATION se encuentran en el ámbito de una cola específica.

El mismo propietario posee los desencadenadores DML y las tablas en que se aplican.

El propietario de una notificación de eventos en una cola puede tener un propietario diferente que el objeto en el que se aplica.

Los desencadenadores admiten la cláusula EXECUTE AS.

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

Se puede capturar la información de eventos del desencadenador DDL mediante la función EVENTDATA, que devuelve un tipo de datos xml.

Las notificaciones de eventos envían información de eventos xml a un servicio de Service Broker. El formato de la información usa el mismo esquema que 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.