Duda con triggers

06/11/2003 - 19:29 por Antonio Liberal | Informe spam
Hola buenas.

Tengo una duda. ¿Se puede desencadenar un disparador ANTES de que los
cambios sean efectivos en una tabla?.
Me explico,
Tengo dos tablas: cabecera de albarán (con fecha) y líneas. En la cabecera
tengo un disparador (con FOR UPDATE) que lanza un UPDATE de la tabla de
líneas. En las líneas tengo otro disparador (con FOR UPDATE) que hace
referencia a la cabecera (obtengo el campo fecha y con la cantidad que pone
en líneas inserto en una estadística). Me interesaría que la fecha que
recoge el disparador de líneas fuera la fecha de la cabecera ANTES de la
modificación. Es decir, si cambio el campo de fecha de 01/01/2003 a
02/01/2003, que en el disparador de líneas obtenga el valor 01/01/2003. Al
final lo que quiero hacer es descontar de las estadísticas de la fecha
01/01/2003 y contar de las estadísticas de la fecha 02/01/2003.

Espero que me hayáis entendido.

Saludos.
 

Leer las respuestas

#1 Fernando G. Guerrero
06/11/2003 - 20:46 | Informe spam
En SQL Server 2000 si es posible: utiliza triggers INSTEAD OF INSERT, o
INSTEAD OF DELETE o INSTEAD OF UPDATE.

Puedes encontrar una presentación que hice sobre este tema hace algún tiempo
(está en inglés) en:

http://www.solidqualitylearning.com...rnando.htm


Fernando G. Guerrero
SQL Server MVP
CEO & Principal Mentor
Solid Quality Learning
www.solidqualitylearning.com

"Comparte lo que sabes, aprende lo que no sepas"

"Antonio Liberal" wrote in
message news:e$
Hola buenas.

Tengo una duda. ¿Se puede desencadenar un disparador ANTES de que los
cambios sean efectivos en una tabla?.
Me explico,
Tengo dos tablas: cabecera de albarán (con fecha) y líneas. En la cabecera
tengo un disparador (con FOR UPDATE) que lanza un UPDATE de la tabla de
líneas. En las líneas tengo otro disparador (con FOR UPDATE) que hace
referencia a la cabecera (obtengo el campo fecha y con la cantidad que


pone
en líneas inserto en una estadística). Me interesaría que la fecha que
recoge el disparador de líneas fuera la fecha de la cabecera ANTES de la
modificación. Es decir, si cambio el campo de fecha de 01/01/2003 a
02/01/2003, que en el disparador de líneas obtenga el valor 01/01/2003. Al
final lo que quiero hacer es descontar de las estadísticas de la fecha
01/01/2003 y contar de las estadísticas de la fecha 02/01/2003.

Espero que me hayáis entendido.

Saludos.


Preguntas similares