Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SINTAXIS:
ON <Nombre de la Tabla>
AFTER <INSERT,DELETE,UPDATE>
AS
BEGIN
-- Esta instrucción se coloca para evitar que aparezca el conteo de numero de filas
afectadas
END
- Los triggers DML utilizan dos tablas especiales denominadas Inserted y Deleted.
- Son tablas creadas automáticamente por el SQL con la misma estructura que la tabla
- En caso de un update las tablas Inserted y Deleted tienen data al mismo tiempo.
- No se pueden modificar los datos de estas tablas
GO
4. Ejemplos de Triggers :
Ejemplo 4.1
ON Clientes
AFTER INSERT
AS
print 'Han actualizado la tabla Clientes'
Ejemplo 4.2
Elaborar un trigger que genere un histórico de stock cada vez que se modifica la existencia de
un artículo (aquí se utilizara la tabla virtual INSERTED)
ON ARTICULOS
AFTER UPDATE
AS
BEGIN
FROM INSERTED
END
UPDATE ARTICULOS
WHERE IDARTICULO = 1
Ejemplo 4.3
Hacer que el trigger del ejemplo 4.2 se desencadene sólo si una columna es afectada
ON ARTICULOS
AFTER UPDATE
AS
BEGIN
IF UPDATE (STOCK)
BEGIN
FROM INSERTED
END
END
Ejemplo 4.4
Hacer que el trigger del ejemplo 4.3 deshaga toda la operación (incluye un ROLLBACK)
ON ARTICULOS
AFTER UPDATE
AS
BEGIN
FROM INSERTED
ROLLBACK
END
Ejemplo 4.5
GO
GO