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