4

私は2つのテーブルtbl_PurchaseDetailstbl_ItemDetails. に挿入された直後に、いくつかの行をtbl_ItemDetailsfromに挿入する必要があります。問題はわかっていますが、解決できません。助けてください。tbl_PurchaseDetailstbl_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' に挿入できません。列はヌルを許可しません。INSERT は失敗します。

私の質問はtbl_PurchaseDetails、トリガーが挿入できるように、挿入された値を取得する方法tbl_ItemDetailsですか?

4

1 に答える 1

6

してみてください:

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

table のNOT NULL列に値を挿入していることを確認してください。PurchaseIDtbl_PurchaseDetails

于 2013-03-06T05:43:09.303 に答える