3

次の構造のスキーマがあります。 表では、はここに画像の説明を入力
1 (承認)、2 (キャンセル)、および 3 (保留)です。私はこのようなことをしようとしています。たとえば、誰かが(MPRMain 内の) を2(Cancel)に更新したときです。テーブルの を0 (無効の場合は 0、有効の場合は 1)に更新したい。 だから、私はこのようなトリガーを作成しようとしました;MPRMainStatusStatusStatusMPRDetail

Alter Trigger Inventory.MprMainUpdate
    ON Inventory.MPRMain
    AFTER UPDATE
AS
BEGIN 

    declare @status as int;
    set @status = (SELECT Status FROM inserted);
    if(@status=2)
    BEGIN
        UPDATE Inventory.MPRDetail
        SET Status = 0   -- update the status to canceled
        WHERE MPRId = (select MPRId from inserted);
    END

END

ただし、StatusaMPRMain2 (キャンセル)から1 (承認)MPRDetailに設定しようとすると、テーブルに変更が表示されません。MPRDetailこれにより、ステータスが 0 (無効の場合は 0) に更新されます。

4

1 に答える 1