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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Danilsa
10/03/2005 - 04:20 | Informe spam
Por la integridad de los datos dices ?

Quieres decir que los triggers no son seguros en cuanto a la integridad ?


Gracias por tu ayuda.



Danilsa Jimenez
Panama
Respuesta Responder a este mensaje
#3 Maxi
10/03/2005 - 13:06 | Informe spam
Hola., a ver, no digo que los TR no sean seguros sino lo siguiente:

Imaginate que alguien se le ocurre deshabilitarlos, o si a alguien se le
ocurre ejecutar un paquete DTS en modo rapido, los trigger no se ejecutaran
por lo tanto la cabecera quedara descolocada, me entendes? por eso te decia
que en estos casos a mi me gustan mucho mas las vistas indexadas ya que te
olvidas de cualquier problema de mantenimiento y en mucho de los casos es
mas rapido :-)


Salu2
Maxi


"Danilsa" escribió en el mensaje
news:%23Pgws%
Por la integridad de los datos dices ?

Quieres decir que los triggers no son seguros en cuanto a la integridad ?


Gracias por tu ayuda.



Danilsa Jimenez
Panama


Respuesta Responder a este mensaje
#4 Danilsa
11/03/2005 - 13:52 | Informe spam
Ok. Ya le entendi. Se deduce entonces que usted aconseja que en cualquier
diseño para los tradicionales casos de los campos redundantes (no
normalizados) para guardar valores acumulados como balances, promedios, etc.
es preferible tenerlos en vistas indexadas que mantenerlos con triggers ?


"Maxi" wrote in message
news:
Hola., a ver, no digo que los TR no sean seguros sino lo siguiente:

Imaginate que alguien se le ocurre deshabilitarlos, o si a alguien se le
ocurre ejecutar un paquete DTS en modo rapido, los trigger no se


ejecutaran
por lo tanto la cabecera quedara descolocada, me entendes? por eso te


decia
que en estos casos a mi me gustan mucho mas las vistas indexadas ya que te
olvidas de cualquier problema de mantenimiento y en mucho de los casos es
mas rapido :-)


Salu2
Maxi


"Danilsa" escribió en el mensaje
news:%23Pgws%
> Por la integridad de los datos dices ?
>
> Quieres decir que los triggers no son seguros en cuanto a la integridad


?
>
>
> Gracias por tu ayuda.
>
>
>
> Danilsa Jimenez
> Panama
>
>


Respuesta Responder a este mensaje
#5 Maxi
11/03/2005 - 14:12 | Informe spam
Hola, a ver, en la mayoria de los casos si, no siempre hay que ser tan
extremista y usar la misma tecnica para todo todo. Hay casos donde
dersnormalizar aumentan considerablemente el rendimiento, es mas, hay veces
que no queda otra :( de todas maneras yo prefiero las vistas indexadas
mientras se pueda ya que son mucho mas faciles de mantener y me aseguran
mucho mas la integridad que tener las cosas separadas. Me ha pasado que en
un sistema que funcionaba como lo quieres hacer vos, han deshabilitado los
triggers, no te das una idea del desastre que eso origino, ni hablar que hay
veces que se mandan un DTS y no ponen la opcion de ejecutar triggers, con lo
cual puede ser un desastre aun mayor.

Yo te aconsejaria que hagas una simple prueba con las vistas indexadas y vos
con tus propios ojos puedas ver lo que te comento, total no pierdes nada :-)


Salu2
Maxi


"Danilsa" escribió en el mensaje
news:
Ok. Ya le entendi. Se deduce entonces que usted aconseja que en
cualquier
diseño para los tradicionales casos de los campos redundantes (no
normalizados) para guardar valores acumulados como balances, promedios,
etc.
es preferible tenerlos en vistas indexadas que mantenerlos con triggers ?


"Maxi" wrote in message
news:
Hola., a ver, no digo que los TR no sean seguros sino lo siguiente:

Imaginate que alguien se le ocurre deshabilitarlos, o si a alguien se le
ocurre ejecutar un paquete DTS en modo rapido, los trigger no se


ejecutaran
por lo tanto la cabecera quedara descolocada, me entendes? por eso te


decia
que en estos casos a mi me gustan mucho mas las vistas indexadas ya que
te
olvidas de cualquier problema de mantenimiento y en mucho de los casos es
mas rapido :-)


Salu2
Maxi


"Danilsa" escribió en el mensaje
news:%23Pgws%
> Por la integridad de los datos dices ?
>
> Quieres decir que los triggers no son seguros en cuanto a la integridad


?
>
>
> Gracias por tu ayuda.
>
>
>
> Danilsa Jimenez
> Panama
>
>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida