Trabajo de desarrollo de software(java)yanina y yenny
Activadores
1. Docente :Ing. Marco Aurelio Porro Chulli.
Asignatura :Base de Datos II.
Ciclo : VIII “A”
Integrante:
• Yenny Isabel Cuello Morón.
• Yanina Bustamante Jibaja.
INGENIERÍA DE SISTEMAS Y TELEMÁTICA
ACTIVADORES EN
SQL SERVER
2. DEFINICION
Son objetos que se asocian con tablas y se almacenan en la
base de datos. Su nombre se deriva por el comportamiento
que presentan en su funcionamiento, ya que se ejecutan
cuando sucede algún evento sobre las tablas a las que se
encuentra asociado.
3. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción
(INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifica los datos
de una tabla.
Declarar variables locales
Invocar procedimientos almacenados
Los triggers pueden:
Llamarse directamente
Usar parámetros
Definirse sobre tablas temporales o vistas
Crear objetos permanentes de base de datos
Los triggers no pueden:
4. SINTAXIS
CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
<dml_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
<method_specifier> ::=
assembly_name.class_name.method_name
5. Administración de Activadores (Creación, Modificación y Eliminación)
CREACIÓN
sintaxis
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME
<method specifier [ ; ] > }
6. EJEMPLO
CREATE TABLE EJ_TRIGGER (
A INT PRIMARY KEY,
B CHAR (30))
CREATE TRIGGER TR_I_EJ_TRIGGER ON EJ_TRIGGER FOR INSERT AS
IF datename(month, getdate()) = "October"
BEGIN
SELECT "En Octubre no hay inserciones"
ROLLBACK TRIGGER
END
INSERT INTO EJ_TRIGGER VALUES (2, 'Dos')
SELECT * FROM EJ_TRIGGER
8. EJEMPLOS
1.-Crear dos tablas
CREATE TABLE EJ_TRIGGER_2A (
A INT PRIMARY KEY,
B CHAR (30))
CREATE TABLE EJ_TRIGGER_2B (
ID NUMERIC IDENTITY PRIMARY KEY,
FECHA DATETIME,
FILAS INT)
9. 2-Crear un trigger que guarde la fecha y número de filas
afectadas por cada delete:
CREATE TRIGGER TR_D_EJ_TRIGGER_2 ON
EJ_TRIGGER_2A FOR DELETE AS
INSERT INTO EJ_TRIGGER_2B VALUES (getdate(),
@@rowcount)
RETURN
10. Conclusiones
•Puedes invertir la lógica. En lugar de eliminar una fila no válida después de que se haya
insertado, escriba un activador, por ejemplo: INSTEAD OF para insertar solo si verifica que
la fila sea válida.
•Los activadores también pueden utilizarse para provocar actualizaciones en otras tablas,
para transformar o generar valores automáticamente en las filas insertadas o actualizadas,
o para invocar funciones que realicen tareas como la de emitir alertas.