SQL - QUE SON LOS TRIGERS

 
Vista:

QUE SON LOS TRIGERS

Publicado por Angela (1 intervención) el 14/01/2003 18:41:09
Hola
Alguien me podria explicar porfavor que son los trigers y para que sirven y donde puedo encontrar ejemplos de como se hacen.
MCUHAS GRACIAS!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:QUE SON LOS TRIGERS

Publicado por Isaías Islas (5072 intervenciones) el 14/01/2003 19:11:01
Hola

Los Triggers o Desencadendores

Un desencadenador es un tipo especial de procedimiento almacenado que entra en vigor cuando se modifican datos en una tabla especificada utilizando una o más operaciones de modificación de datos: UPDATE (actualización), INSERT (inserción) o DELETE (eliminación). Los desencadenadores pueden consultar otras tablas e incluir instrucciones SQL complejas. Son especialmente útiles para exigir reglas o requisitos complejos. Por ejemplo, se puede controlar que se permita insertar un pedido basándose en el estado de cuenta actual de un cliente.

En pocas palabras, es Codigo SQL que se ejecuta al detectar un INSERT, DELETE o UPDATE en la tabla donde se asigne dicho trigger.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como crear un triggers ejemplo please

Publicado por Julio Cesar (1 intervención) el 31/07/2003 04:48:13
Hola please un ejemplo para poder crear un trigers con stored procedure, ponme un ejemplo o un caso y ayudame a crearlo please gracias bye bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Disparadores.

Publicado por Jorge (3 intervenciones) el 14/01/2003 21:17:36
Los Triggers son Disparadores que se ejecutan cuado sucede un evento,.. en el caso de las Bases de Datos pueden existir 6 diferentes Triggers (cómo en el Caso de Oracle) los cuales son
BEFORE INSERT (antes de Insertar)
BEFORE DELETE (antes de borrar)
BEFORE UPDATE (antes de actualizar)
AFTER INSERT (despues de insertar)
AFTER UPDATE (despues de actualizar)
AFTER DELETE (despues de borrar)
Al ejecutarse cualquiera de los eventos anteriores se dispara un trigger el cual es un procedimiento de PL/SQL que puede actualizar otras tablas o simplemente hacer calculos para una columna de la misma tabla .

Aparte de éstos triggers tambien existen triggers a nivel de formas o de Reportes,.. los cuales tambien son procemdimientos almacenados que se disparan cuando se ejecuta alguna acción (Ej. WHEN-NEW-ITEM-INSTANCE, KEY-NEXT-ITEM,.. Etc)

Espero que te sirva mi explicación.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Disparadores.

Publicado por Angela (6 intervenciones) el 14/01/2003 21:52:15
MUCHAS GRACIAS ISAÍAS Y JORGE POR SU RESPUESTA.
SOLO ME QUEDO UNA DUDILLA EL CODIGO O SINTAXIS ES IGUAL QUE UN PROCEDIMIENTO NORMAL, DONDE PUEDO ENCONTRAR ALGUN EJEMPLO.
GRACIAS DE ANTEMANO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Disparadores.

Publicado por Isaías Islas (5072 intervenciones) el 14/01/2003 21:58:48
Sip, es codigo SQL:

CREATE TRIGGER updEmployeeData
ON employeeData
FOR update AS
/*Check whether columns 2, 3 or 4 has been updated. If any or all of columns 2, 3 or 4 have been changed, create an audit record. The bitmask is: power(2,(2-1))+power(2,(3-1))+power(2,(4-1)) = 14. To check if all columns 2, 3, and 4 are updated, use = 14 in place of >0 (below).*/

IF (COLUMNS_UPDATED() & 14) > 0
/*Use IF (COLUMNS_UPDATED() & 14) = 14 to see if all of columns 2, 3, and 4 are updated.*/
BEGIN
-- Audit OLD record.
INSERT INTO auditEmployeeData
(audit_log_type,
audit_emp_id,
audit_emp_bankAccountNumber,
audit_emp_salary,
audit_emp_SSN)
SELECT 'OLD',
del.emp_id,
del.emp_bankAccountNumber,
del.emp_salary,
del.emp_SSN
FROM deleted del

-- Audit NEW record.
INSERT INTO auditEmployeeData
(audit_log_type,
audit_emp_id,
audit_emp_bankAccountNumber,
audit_emp_salary,
audit_emp_SSN)
SELECT 'NEW',
ins.emp_id,
ins.emp_bankAccountNumber,
ins.emp_salary,
ins.emp_SSN
FROM inserted ins
END
GO

Este Trigger creado en la tabla employeeData , genera un registro en otra tabla auditEmployeeData para saber QUIEN ACTULIZO el registro.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Disparadores.

Publicado por EDELRIO (540 intervenciones) el 14/01/2003 23:47:52
Bueno si es igual que un store procedure solo que este comienza con create trigger etc...

saludos y permite todas las sentencias...

Siendo honesto me quedo con la ultima definicion de Isaias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Explicación

Publicado por Jorge (3 intervenciones) el 15/01/2003 16:46:01
Si es igual que un Procedimiento Normal, Puedes encontrar la definición y sitaxis exacta,.. en ésta dirección :

http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a85397/statem6d.htm#2063897

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar