2013-03-06 45 views
3

我有两个表tbl_PurchaseDetailstbl_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。它引发以下错误:

Msg 515, Level 16, State 2, Procedure trigger_UpdateItemDetails, Line 11
Cannot insert the value NULL into column 'PurchaseID', table 'dbStockHandling.dbo.tbl_ItemDetails'; column does not allow nulls. INSERT fails.

我的问题是如何从tbl_PurchaseDetails使得触发可以将它们插入到tbl_ItemDetails得到插入的值?

回答

3

请尝试:

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 

,并确保您插入NOT NULL值表tbl_PurchaseDetailsPurchaseID列。

+0

非常感谢您的回复。其实这两个触发器都能正常工作。我想'tbl_ItemDetails'中的自动增量字段,我没有实现,这就是错误发生的原因。再次感谢你。 :d – 2013-03-06 06:04:22

相关问题