Power Builder - Como se cuando se ejecuta un trigger

   
Vista:

Como se cuando se ejecuta un trigger

Publicado por German (13 intervenciones) el 12/04/2011 15:23:31
Señores son novato en el tema de trigger y deseo crear uno, pero estoy lleno de dudas, a continuacion se las hago saber
1.0 Si un trigger se le da un nombre, también debe existir algún comando que lo ejecute?
2.0 Como se que se ejecutara el trigger?
3.0 Por favor crear un par de líneas donde exista por ej. un scrip que actualice una tabla y que por otro lado se dispare en trigger asociado a esa tabla?
La verdad este punto es el que más me produce confusión, no sé cómo se ejecutar el trigger
Yo me imagino que si tengo un escrip donde tenga la siguiente instrucción
update tb_ctrol_bto, automáticamente se dispara el trigger asociado a esta tabla?

Estaré atento a sus comentarios

German
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

Como se cuando se ejecuta un trigger

Publicado por isaac isaacmatal@gmail.com (8 intervenciones) el 12/04/2011 18:37:38
hola German,

En la ultima linea de tu consulta te das la respuesta correcta. Un trigger es como un procedimiento almacenado en la base de datos, con la diferencia que este procedimiento se ejecuta como un evento en el servidor de la base de datos cuando ejecutas un insert, delete o update en un registro, eso lo defines cuando creas el trigger para la tabla, es decir que se ejecuta automaticamente por ejemplo cuando insertas un registro nuevo.

No hay codigo que pueda darte porque el trigger se ejecutara automaticamente cuando actualizes la tabla.

Espero haber contestado tu pregunta.

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

Como se cuando se ejecuta un trigger

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 12/04/2011 21:59:04
Para agregar a lo indicado por Isaac y siendo específico con las respuestas:

1.0 Si un trigger se le da un nombre, también debe existir algún comando que lo ejecute?
R/. El trigger se ejecuta de forma automática, obedeciendo algún tipo de actualización a la tabla en la base de datos, por ejemplo, cuando se realiza un Udate, Delete o Insert. La base de datos ejecuta el código que le hayas indicado.

2.0 Como se que se ejecutara el trigger?
R/. Esto es automático, en la base de datos. Pero, puedes crear al final del código un insert a alguna tabla de bitácora, que te indique lo que necesitas, una vez que se haya ejecutado el trigger. Así tendrás una comprobación visible de lo sucedido.

3.0 Por favor crear un par de líneas donde exista por ej. un scrip que actualice una tabla y que por otro lado se dispare en trigger asociado a esa tabla?
R/ Estos son unos buenos ejemplos, dentro del trigger usas las tablas Inserted, Deleted, para hacer referencia a los registros insertados o borrados.

CREATE TRIGGER tr_Orders_UPDATE
ON Orders
AFTER UPDATE
AS

--Make sure Priority was changed
IF NOT UPDATE(Ord_Priority)
RETURN

--Determine if Priority was changed to high
IF EXISTS (SELECT *
FROM inserted a
JOIN deleted b ON a.Ord_ID=b.Ord_ID
WHERE b.Ord_Priority <> 'High' AND
a.Ord_Priority = 'High')
BEGIN
DECLARE @Count tinyint
SET @Count = (SELECT COUNT(*)
FROM inserted a
JOIN deleted b ON a.Ord_ID=b.Ord_ID
WHERE b.Ord_Priority <> 'High' AND
a.Ord_Priority = 'High')
PRINT CAST(@Count as varchar(3))+' row(s) where changed to a priority of High'
END
go


CREATE TRIGGER tr_Orders_DELETE
ON Orders
AFTER DELETE
AS

--Determine if Order with a Priority of High was deleted
IF EXISTS (SELECT * FROM deleted WHERE Ord_Priority = 'High')
BEGIN
DECLARE @Count tinyint
SET @Count = (SELECT * FROM deleted WHERE Ord_Priority = 'High')
PRINT CAST(@Count as varchar(3))+' row(s) where deleted whose priority was High'
END
go
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 se cuando se ejecuta un trigger

Publicado por German (13 intervenciones) el 20/04/2011 03:40:33
Gracias amigo por tu ayuda, ahora ya tengo mas claro el concepto

German
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