У меня есть таблица orderDetails, которая содержит продукты заказа
- PRODUCTID
- цвет
- размер
- количество
и столовый инвентарь
- PRODUCTID
- размер
- цвет
- запас
Когда заказ выполнен, я использую этот запрос для вставки элементов в таблицу orderDetails
INSERT INTO orderDetail(orderId, productId, productColor, productSize, productQuantity , cost productName)
SELECT
@orderId, products_translations.id, cart.productColor, cart.productSize,
cart.productQuantity, cart.cost, products_translations.name
FROM cart
INNER JOIN products_translations ON cart.productID = products_translations.id
WHERE
(cart.cartId = @cartId) AND
(products_translations.language = 1)
Тогда у меня есть триггер на столе orderDetails
:
ALTER TRIGGER [dbo].[scalaProdotti]
ON [dbo].[orderDetail]
FOR INSERT
AS
DECLARE @size int
DECLARE @color char(6)
DECLARE @quantity int
DECLARE @product int
BEGIN
SELECT @size = productSize FROM inserted
SELECT @color = productColor FROM inserted
SELECT @quantity = productQuantity FROM inserted
SELECT @product = productId FROM inserted
UPDATE stock SET quantity = quantity - @quantity WHERE size=@size AND color=@color AND product=@product
END
С помощью этого триггера я хочу уменьшить запас, но влияет только на первый продукт, остальные количества остаются прежними.
Чего мне не хватает?
Спасибо.