Implementación de Triggers en SQL Server: Ejemplos y Casos de Uso
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,11 KB
Ejemplos de Triggers en SQL Server
Este documento presenta ejemplos de cómo implementar triggers en SQL Server. Los triggers son útiles para automatizar tareas y responder a eventos específicos en la base de datos.
Creación de Triggers
A continuación, se muestran ejemplos de cómo crear triggers para diferentes escenarios:
Ejemplo 1: Trigger para Inserción de Usuario
Este trigger muestra un mensaje cuando se inserta un nuevo registro en la tabla 'Usuario'.
```sql CREATE TRIGGER TR7_E1_2 ON Usuario FOR INSERT AS PRINT 'Se ingresó un usuario' ```
Ejemplo 2: Deshabilitar Trigger
Este ejemplo muestra cómo deshabilitar un trigger.
```sql ALTER TABLE Usuario DISABLE TRIGGER TR7_E1_2 ```
Ejemplo 3: Trigger para Actualización de Usuario
Este trigger muestra un mensaje cuando se actualiza un registro en la tabla 'Usuario'.
```sql CREATE TRIGGER TR7_E1_5 ON Usuario FOR UPDATE AS PRINT 'Se modificó un usuario' ```
Ejemplo 4: Trigger para Eliminar Registro (en lugar de eliminar)
Este trigger muestra un mensaje en lugar de eliminar un registro de la tabla 'Usuario'.
```sql CREATE TRIGGER TR7_E1_8 ON Usuario INSTEAD OF DELETE AS PRINT 'Se eliminó un registro' ```
Ejemplo 5: Trigger para Registrar Inserciones en Otra Tabla
Este trigger inserta el usuario y la fecha en una nueva tabla cuando se inserta un registro en la tabla 'Empleado'.
```sql CREATE TABLE Empleado_Info( Usuario varchar(60), Fecha datetime )
CREATE TRIGGER TR7_E2_2 ON Empleado FOR INSERT AS INSERT INTO Empleado_Info VALUES (SUSER_SNAME(), GETDATE()) ```
Ejemplo 6: Trigger para Registrar Cambios en la Tabla 'Empleado'
Este trigger guarda los cambios realizados en la tabla 'Empleado' en la tabla 'Empleado_Log'.
```sql CREATE TABLE Empleado_Log( Descripcion varchar(200) )
CREATE TRIGGER TR7_E2_3 ON Empleado FOR UPDATE AS DECLARE @Descripcion varchar(200) SET @Descripcion = 'Se modificó el valor de'
IF UPDATE(Id_Empleado) SELECT @Descripcion = @Descripcion + ' Id_Empleado = ' + CAST(D.Id_Empleado as VARCHAR(10)) + ' a Id_Empleado = ' + CAST(I.Id_Empleado as VARCHAR(10)) FROM DELETED AS D, INSERTED AS I
IF UPDATE(Nombre) SELECT @Descripcion = @Descripcion +' Nombre = ' + D.Nombre + ' a Nombre = ' + I.Nombre FROM DELETED AS D, INSERTED AS I
IF UPDATE(Departamento) SELECT @Descripcion = @Descripcion + ' Departamento = ' + D.Departamento + ' a Departamento = ' + I.Departamento FROM DELETED AS D, INSERTED AS I
IF UPDATE(Sueldo) SELECT @Descripcion = @Descripcion + ' Sueldo = $' + CAST(D.Sueldo as VARCHAR(10)) + ' a Sueldo = $' + CAST(I.Sueldo AS VARCHAR(10)) FROM DELETED AS D, INSERTED AS I
INSERT INTO Empleado_Log VALUES (@Descripcion) ```
Ejemplo 7: Inserción y Actualización de Datos
Este ejemplo muestra cómo insertar y actualizar datos en la tabla 'Empleado'.
```sql INSERT INTO Empleado VALUES (1, 'Daniel', 'Desarrollo Web', 100000.00) UPDATE Empleado SET Sueldo = 200000.00, Id_Empleado = 11 WHERE Id_Empleado = 1 SELECT*FROM Empleado SELECT*FROM Empleado_Log ```