Hola Foro, vengo de Interbase y el siguiente trigger me funciona pero no lo
entiendo demasiado bien
Aguien me lo podria explicar un poco
sobre todo porque la parte de Single y Multi, no hay suficiente con una
parte
i lo de +ISNULL y -ISNULL tampoco lo entiendo porque no hay suficiente
solo con una parte
Gracias por Adelantado
Gabriel
USE Northwind
GO
CREATE TRIGGER tr_OrderDetails_TotalOrders
ON [Order details]
AFTER INSERT, DELETE, UPDATE
AS
IF @@rowcount = 1
UPDATE Orders
SET SaleTotal = SaleTotal
+ ISNULL(
(SELECT UnitPrice * Quantity * (1 - Discount)
FROM Inserted
WHERE Inserted.OrderID = Orders.OrderID), 0)
- ISNULL(
(SELECT UnitPrice * Quantity * (1 - Discount)
FROM Deleted
WHERE Deleted.OrderID = Orders.OrderID), 0)
ELSE
UPDATE Orders
SET SaleTotal = SaleTotal
+ ISNULL(
(SELECT SUM(UnitPrice * Quantity * (1 - Discount))
FROM Inserted
WHERE Inserted.OrderID = Orders.OrderID), 0)
- ISNULL(
(SELECT SUM(UnitPrice * Quantity * (1 - Discount))
FROM Deleted
WHERE Deleted.OrderID = Orders.OrderID), 0)
GO
Leer las respuestas