Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Mal funcionamiento de un trigger

Estas en el tema de Mal funcionamiento de un trigger en el foro de SQL Server en Foros del Web. Estimados, tengo 4 tablas BODEGA, BODEGA_MATERIAL, MATERIAL, DETALLE_MOVIMIENTO y un trigger en la tabla BODEGA_MATERIAL para que cada vez que se haga un insert en ...
  #1 (permalink)  
Antiguo 16/04/2012, 09:30
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Mal funcionamiento de un trigger

Estimados, tengo 4 tablas BODEGA, BODEGA_MATERIAL, MATERIAL, DETALLE_MOVIMIENTO y un trigger en la tabla BODEGA_MATERIAL para que cada vez que se haga un insert en la tabla me registre un detalle del movimiento.

El problema esta en que me empieza a duplica el insert desde el 2do ingreso en la DETALLE_MOVIMIENTO (el 1er insert bien un registro en bodega_material y uno en detalle_movimiento, al 2do insert me ingresa bien el registro en bodega_material pero en detalle me ingresa el 1er insert mas el segundo bien).

dejo mi codigo para ver que esta mal:

Cita:
CREATE TRIGGER tr_registra_ingreso
ON BODEGA_MATERIAL FOR INSERT
AS
BEGIN
--SET NOCOUNT ON;
DECLARE @MOVINGRESO INTEGER
SET @MOVINGRESO = '1'

INSERT INTO DETALLE_MOVIMIENTO (ID_BODEGA, ID_MATERIAL, ID_TIPO_MOVIMIENTO, CANTIDAD_MATERIAL_MOVIMIENTO, FECHA_HORA_MOVIMIENTO)
SELECT BODEGA_MATERIAL.ID_BODEGA, BODEGA_MATERIAL.ID_MATERIAL, @MOVINGRESO, BODEGA_MATERIAL.CANTIDAD_MATERIAL_ENBODEGA, GETDATE()
FROM BODEGA_MATERIAL
CROSS JOIN INSERTED

END
GO
Espero que me ayuden gracias.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #2 (permalink)  
Antiguo 16/04/2012, 10:04
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Mal funcionamiento de un trigger

Los triggers no fueron creados para tal fin, ¿porque no haces el movimiento correspondiente desde el store procedure que hace el insert?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 16/04/2012, 10:13
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Mal funcionamiento de un trigger

Cita:
Iniciado por iislas Ver Mensaje
Los triggers no fueron creados para tal fin, ¿porque no haces el movimiento correspondiente desde el store procedure que hace el insert?
mmm ok, estimado consultas y si me quedara con el trigger por que me duplica los registros? y para que casos seria recomendable realizar triggers? gracias.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #4 (permalink)  
Antiguo 16/04/2012, 10:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Mal funcionamiento de un trigger

Te esta generando duplicados, porque tus relaciones, no son ONE-TO-ONE (uno-a-uno), los triggers fueron creados para salva-guardar el DRI (Data Referential Integrity), la integridad referencial.
__________________
MCTS Isaias Islas

Etiquetas: fecha, funcionamiento, registro, select, tabla, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:56.