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
當我從Basket插入數據到SaleItem時,它工作正常,但只觸發第一個插入的id。我如何使它適用於所有ID?從一個表插入到另一個表和激活觸發器
編輯! 我改變了我的觸發器,我猜這有點奏效。
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 inserted'淹沒:) – gofr1