Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son los tipos de desencadenadores en SQL Server?

¿Cuáles son los tipos de desencadenadores en SQL Server?

Categoría: Computadora/Red>>Programación>>Otros lenguajes de programación

Respuesta:

El concepto y función de los disparadores

Un disparador es un tipo de procedimiento almacenado Tipo especial, diferente de los procedimientos almacenados que presentamos anteriormente. Los desencadenantes se activan y ejecutan principalmente mediante eventos, mientras que los procedimientos almacenados se pueden llamar directamente a través del nombre del procedimiento almacenado. Cuando realiza operaciones como ACTUALIZAR, INSERTAR o ELIMINAR en una tabla, SQL Server ejecuta automáticamente la instrucción SQL definida por el desencadenador para garantizar que los datos se procesen de acuerdo con las reglas definidas por la instrucción SQL.

El objetivo principal de los activadores es lograr una integridad referencial compleja y una coherencia de los datos que no pueden garantizarse mediante claves primarias y externas. Además, los desencadenadores tienen muchas otras funciones diferentes:

(1) Aplicar restricciones

Los desencadenadores pueden implementar restricciones más complejas que las declaraciones CHECK.

(2) Seguimiento de cambios de auditoría de cambios

Los activadores pueden detectar operaciones en la base de datos, impidiendo así actualizaciones y cambios especificados no autorizados en la base de datos.

(3) Funcionamiento en cascada.

Los activadores pueden detectar operaciones en la base de datos y conectarse automáticamente en cascada para afectar el contenido de toda la base de datos. Por ejemplo, un disparador en una tabla contiene una operación de datos (como eliminar, actualizar, insertar) en otra tabla, lo que hace que el disparador se active en esa tabla.

(4) Llamada a procedimiento almacenado.

En respuesta a una solicitud de actualización de una base de datos, un generador puede invocar uno o más procedimientos almacenados a través de llamadas a procedimientos almacenados externos, incluso fuera del propio DBMS.

Como puede ver, los activadores pueden manejar formas avanzadas de reglas comerciales o restricciones de comportamiento complejas, además de implementar un mantenimiento de registros personalizado y una serie de otros aspectos. Por ejemplo, los desencadenantes pueden identificar diferencias en el estado de la tabla antes y después de las modificaciones de los datos y ejecutar ciertos procesos en función de estas diferencias. Además, varios activadores del mismo tipo (INSERT, UPDATE, DELETE) en una tabla pueden realizar múltiples operaciones diferentes en la misma operación de datos.

En general, el rendimiento de los desencadenantes es generalmente bajo. Cuando ejecuta un disparador, la mayor parte del tiempo de procesamiento del sistema se dedica a hacer referencia a otras tablas que no están en la memoria ni en el dispositivo de base de datos, mientras que las eliminaciones e inserciones siempre ocurren en la memoria. Se puede ver que la ubicación de otras tablas a las que hace referencia el disparador determina el tiempo requerido para la operación.

Tipos de desencadenadores

SQL Server 2000 admite dos tipos de desencadenadores: DESPUÉS de desencadenadores y EN LUGAR DE desencadenadores. El disparador DESPUÉS es un disparador introducido en versiones anteriores de SQL Server 2000. Este tipo de activador debe activarse solo después de realizar una operación (INSERT UPDATE DELETE) y solo se puede definir en la tabla. Se pueden definir varios desencadenadores para la misma operación en una tabla. Para los desencadenadores DESPUÉS, puede definir qué desencadenador se activa primero y cuál se activa después, normalmente utilizando el procedimiento almacenado sp_settriggerorder.

Un disparador EN LUGAR DE significa que no ejecutará su acción definida (INSERT, UPDATE, DELETE), sino solo el disparador en sí. Puede definir activadores EN LUGAR DE en tablas y vistas, pero solo se puede definir un activador EN LUGAR DE para la misma operación.