Trigger de actualizacion de balances

07/03/2005 - 19:10 por Danilsa | Informe spam
Tengo una tablita de movimientos que tiene tres campos digamos valor_A,
valor_B y valor_C. En otra tabla debo ir guardando los acumulados de estos
valores en tres campos del mismo nombre. Debo mantenerlos actualizados a
medida que se vayan insertando, borrando o actualizando en la tablita de
movimientos.

Ya poseo la idea mas o menos de como armar mis triggers pero si tienen por
ahi algun ejemplo parecido que yo pueda ver para tenerlo mas claro se lo
agradeceria mucho. Estoy aprendiendo sql. Muchas gracias



Danilsa
Panama
 

Leer las respuestas

#1 Maxi
07/03/2005 - 19:29 | Informe spam
Hola, te paso un ejemplo:

==
USE NORTHWIND
CREATE TABLE ARTICULOS (ID INT, STOCK FLOAT)

CREATE TABLE MOVIMIENTOS (ARTICULO_ID INT, CANTIDAD FLOAT, TRANSACCION INT
IDENTITY)

CREATE TRIGGER TR_MOV ON MOVIMIENTOS FOR INSERT AS
UPDATE ARTICULOS SET STOCK = STOCK + T2.CANTIDAD
FROM ARTICULOS INNER JOIN (SELECT SUM(CANTIDAD) AS CANTIDAD, ARTICULO_ID
FROM INSERTED GROUP BY ARTICULO_ID) T2 ON
T2.ARTICULO_ID = ARTICULOS.ID

GO

INSERT INTO ARTICULOS VALUES (1,100)
INSERT INTO ARTICULOS VALUES (2,0)

INSERT INTO MOVIMIENTOS (ARTICULO_ID,CANTIDAD) VALUES (1,500)
INSERT INTO MOVIMIENTOS (ARTICULO_ID,CANTIDAD) VALUES (2,1000)


SELECT * FROM ARTICULOS

=
pd: a mi este tipo de tecnicas mucho no me gustan por el mantenimiento que
llevan y ademas por la integridad de los datos, yo prefiero en estos casos
ver la forma de poner una vista indexada


Salu2
Maxi


"Danilsa" escribió en el mensaje
news:
Tengo una tablita de movimientos que tiene tres campos digamos valor_A,
valor_B y valor_C. En otra tabla debo ir guardando los acumulados de
estos
valores en tres campos del mismo nombre. Debo mantenerlos actualizados a
medida que se vayan insertando, borrando o actualizando en la tablita de
movimientos.

Ya poseo la idea mas o menos de como armar mis triggers pero si tienen por
ahi algun ejemplo parecido que yo pueda ver para tenerlo mas claro se lo
agradeceria mucho. Estoy aprendiendo sql. Muchas gracias



Danilsa
Panama


Preguntas similares