SQL - Problema con trigger

 
Vista:
Imágen de perfil de Karla

Problema con trigger

Publicado por Karla (3 intervenciones) el 15/02/2018 16:08:30
Hola! Tengo un trigger en un Detalle de venta para modificar el Stock de un producto, si se elimina el detalle.

No hay problema si elimino un detalle, pero cuando elimino varios detalles, por ejemplo, cuando elimino una factura que tiene varios detalles, entonces me da error.
duda


Espero que me puedan ayudar, de antemano, muchas gracias!
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
sin imagen de perfil
Val: 109
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con trigger

Publicado por Rafael (111 intervenciones) el 15/02/2018 16:55:01
Hola Karla:

Tienes la solucion pero no la quieres ver...

Como bien comentas el problema se encuentra por que estas borrando "n" detalles...

El error tambien es claro dice:
La subconsulta ha devuelto más de un valor, lo que no es correcto .....

En tu codigo has puesto esto:
1
SET @CANT = (SELECT CANTIDAD FROM deleted)

PERO deleted tiene "n" registros ... ¿porque? por que has borrado "n" detalles..

Piensa si borras un solo detalle solo tienes una cantidad... pero si borras "n" tienes "n" cantidades que quieres poner en una variable que solo acepta 1 valor...

A diferencia de otros RDBMS ( Manejadores de Base de Datos) en SQL Server la tabla tiene TODOS los registros que vas a borrar ...

Casi lo tienes, vaya que lo que te falta es ver que no necesitas almacenar la cantidad en una Variable.

La solucion seria algo como esto:
OJO comenta el DECLARE y el SET ( en su defecto borralo)
1
2
3
4
UPDATE INVENTARIO
SET INVENTARIO.CANTIDAD = INVENTARIO.CANTIDAD + deleted.cantidad
FROM INVENTARIO, deleted
WHERE INVENTARIO.COD_PRODUCTO = deleted.COD_PRODUCTO

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con trigger

Publicado por Isaias (1921 intervenciones) el 15/02/2018 17:05:27
Excelente, aunque siempre he sido de la idea de que los TRIGGERS no fueron creados para codificar la logica del negocio
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
Imágen de perfil de Karla

Problema con trigger

Publicado por Karla (3 intervenciones) el 15/02/2018 17:24:20
Muchas gracias!! Me funcionó!!
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