Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 创建一个触发器,将记录从一个表插入到另一个表。获取触发器中插入的值_Sql_Sql Server - Fatal编程技术网

Sql 创建一个触发器,将记录从一个表插入到另一个表。获取触发器中插入的值

Sql 创建一个触发器,将记录从一个表插入到另一个表。获取触发器中插入的值,sql,sql-server,Sql,Sql Server,我有两个表tbl\u PurchaseDetails和tbl\u ItemDetails。在插入tbl\u PurchaseDetails之后,我需要在tbl\u PurchaseDetails的tbl\u ItemDetails中插入一些行。我知道这个问题,但我不能解决它。请帮忙 我已经为触发器编写了以下代码: CREATE TRIGGER trigger_UpdateItemDetails ON tbl_PurchaseDetails FOR INSERT AS DECLARE @Purch

我有两个表
tbl\u PurchaseDetails
tbl\u ItemDetails
。在插入
tbl\u PurchaseDetails
之后,我需要在
tbl\u PurchaseDetails
tbl\u ItemDetails
中插入一些行。我知道这个问题,但我不能解决它。请帮忙

我已经为触发器编写了以下代码:

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\u PurchaseDetails
时,行被添加到
tbl\u PurchaseDetails
中,而不是添加到
tbl\u ItemDetails
。它抛出以下错误:

Msg 515,第16级,状态2,程序触发器\u UpdateItemDetails,第11行
无法将值NULL插入表“dbStockHandling.dbo.tbl_ItemDetails”的列“PurchaseID”中;列不允许空值。插入失败

我的问题是如何从
tbl\u PurchaseDetails
获取插入的值,以便触发器可以将它们插入
tbl\u ItemDetails

请尝试:

CREATE TRIGGER trigger_UpdateItemDetails ON tbl_PurchaseDetails
FOR INSERT AS
BEGIN

    INSERT INTO 
    tbl_ItemDetails
    (
        PurchaseID,
        Quantity,
        WarehouseID
    )
    SELECT 
        PurchaseID, 
        ItemQuantity, 
        WarehouseID
    FROM 
        INSERTED
END

并确保在表
tbl_PurchaseDetails
PurchaseID
列中插入
notnull
值。非常感谢您的回复。实际上,两个触发器都可以正常工作。我希望在“tbl_ItemDetails”中有一个自动递增字段,但我没有实现,这就是发生错误的原因。再次感谢你D