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