Disparador SQL
Ejemplo de disparador SQL
Definición: ¿Qué es un disparador? En SQL Server, es un programa que realiza una determinada operación en una determinada tabla, desencadena una determinada condición y se ejecuta. Un disparador es un procedimiento almacenado especial.
Hay tres activadores comunes: se aplican a los eventos Insertar, Actualizar y Eliminar.
¿Por qué debería utilizar desencadenantes? Por ejemplo, estas dos tablas:
Crear tabla Estudiante( --Tabla de estudiantes
ID de estudiante int clave primaria, --Número de estudiante
....
)
Crear tabla BorrowRecord( --Tabla de registro de préstamos de estudiantes
BorrowRecord int identidad(1, 1), --Número de serie
StudentID int, --número de estudiante
Fecha y hora de préstamo, --hora de préstamo
Fecha y hora de regreso, --hora de regreso
...
p>)
Las funciones utilizadas son:
1. Si cambio la identificación de estudiante del estudiante, espero que su registro de préstamo aún esté relacionado con este estudiante (Eso es decir, cambiar la identificación de estudiante de la tabla de registro de préstamo de libros al mismo tiempo);
2. Si el estudiante se graduó, espero eliminar su identificación de estudiante y también eliminar su registro de préstamo de libros.
Espera.
En este momento se pueden utilizar disparadores.
Para 1, cree un activador de actualización:
Crear activador truStudent
En Estudiante: cree un activador en la tabla de Estudiantes
para Actualización: por qué activador de evento
Como: qué hacer después de que se active el evento
si la actualización (StudentID)
comienza
actualiza BorrowRecord
Establecer StudentID=i.StudentID
De BorrowRecord br, Eliminado d, Insertado i --Tablas temporales eliminadas e insertadas
Donde br.StudentID=d.StudentID
p>end
Comprenda las dos tablas temporales en el activador: Eliminadas e Insertadas. Tenga en cuenta que Eliminado e Insertado representan respectivamente el "registro antiguo" y el "registro nuevo" de la tabla que desencadenó el evento.
Existen dos tablas virtuales en un sistema de base de datos que se utilizan para almacenar la información registrada en la tabla, las cuales son:
Tabla virtual Insertada Tabla virtual Eliminada
Cuando se Se agrega el registro de la tabla, el nuevo registro se almacena pero no el registro.
Cuando se modifica el registro de la tabla, se almacena el nuevo registro utilizado para la actualización. Se almacena el registro anterior a la actualización.
Cuando se elimina el registro de la tabla, el registro eliminado no se almacena.
Un proceso de actualización se puede ver como: generar nuevos registros en la tabla Insertada, copiar registros antiguos en la tabla Eliminada y luego. eliminando el registro de Estudiante y escribiendo el nuevo registro.
Para 2, cree un activador de eliminación
Cree el activador trdStudent
En Estudiante
para Eliminar
Como
Eliminar BorrowRecord
De BorrowRecord br , Delted d
Donde br.StudentID=d.StudentID
A partir de estos dos ejemplos podemos vea la clave del disparador: A. 2 tablas temporales B. Mecanismo de disparo.
Ejemplo 2 de activador SQL