【发布时间】:2013-03-06 05:40:18
【问题描述】:
我有两张桌子tbl_PurchaseDetails 和tbl_ItemDetails。我需要将一些行从tbl_PurchaseDetails 插入tbl_ItemDetails,就在它插入tbl_PurchaseDetails 之后。我知道这个问题,但我无法解决它。请帮忙。
我为触发器编写了以下代码:
CREATE TRIGGER trigger_UpdateItemDetails ON tbl_PurchaseDetails
FOR INSERT AS
DECLARE @PurchaseID VARCHAR(20)
DECLARE @Quantity INT
DECLARE @WarehouseID VARCHAR(20)
SELECT @PurchaseID=(PurchaseID) FROM INSERTED
SELECT @Quantity=(ItemQuantity) FROM INSERTED
SELECT @WarehouseID=(WarehouseID) FROM INSERTED
INSERT INTO
tbl_ItemDetails
(PurchaseID,Quantity,WarehouseID)
VALUES
(
@PurchaseID,@Quantity,@WarehouseID
)
现在,当我插入tbl_PurchaseDetails 时,行会添加到tbl_PurchaseDetails,但不会添加到tbl_ItemDetails。它抛出以下错误:
消息 515,级别 16,状态 2,过程 trigger_UpdateItemDetails,第 11 行
无法将值 NULL 插入到列“PurchaseID”、表“dbStockHandling.dbo.tbl_ItemDetails”中;列不允许空值。插入失败。
我的问题是如何从tbl_PurchaseDetails 获取插入的值,以便触发器可以将它们插入tbl_ItemDetails?
【问题讨论】:
标签: sql sql-server