INSERT INTO SaleItem (ProdId, SaleQuantity)
SELECT ProdId, BasketProdQuantity FROM Basket;
CREATE TRIGGER TRG_Stock_Decrease
ON SaleItem
AFTER INSERT
AS
DECLARE @ProdId INT
DECLARE @SaleQuantity INT
SELECT @ProdId=ProdId,@SaleQuantity=SaleQuantity FROM inserted
UPDATE Product SET [email protected] WHERE [email protected]
UPDATE Product SET ProdNoOfSold [email protected] WHERE [email protected]
DELETE FROM Basket Where ProdId = @ProdId
Когда я вставляю данные из корзины в SaleItem, он работает хорошо, но срабатывает только для первого вставленного идентификатора. Как я могу заставить его работать для всех идентификаторов?Вставка из таблицы в другую таблицу и активирующий триггер
EDIT! Я сменил курок, как это, и это вроде бы сработало, я думаю.
CREATE TRIGGER TRG_Stock_Decrease
ON SaleItem
AFTER INSERT
AS
BEGIN
UPDATE Product SET ProdStockQuantity = ProdStockQuantity - (Select SaleQuantity From inserted Where Product.ProdId = inserted.ProdId) Where Product.ProdId IN (Select ProdId From inserted)
UPDATE Product SET ProdNoOfSold =ProdNoOfSold + (Select SaleQuantity From inserted Where Product.ProdId = inserted.ProdId) Where Product.ProdId IN (Select ProdId From inserted)
DELETE FROM Basket WHERE Basket.ProdId IN (Select ProdId From inserted)
END
Это правильно?
среды SQL Server Management Studio 2012, если вы спросили, что. –
Исправлено, но переполнено множеством 'SELECT FROM вставлено' :) – gofr1