更新された列が特定の値と等しい場合にのみ実行されるトリガーを作成しようとしています。
基本的に、列名「Status」を値「Paid」に更新した場合にのみ、トリガーを実行します。
すなわち
if (Update(Status) AND inserted.Status = 'Paid')
begin
end
現時点では、「マルチパート識別子 "inserted.Status" をバインドできませんでした」というエラーが表示されます。
前もって感謝します!
更新された列が特定の値と等しい場合にのみ実行されるトリガーを作成しようとしています。
基本的に、列名「Status」を値「Paid」に更新した場合にのみ、トリガーを実行します。
すなわち
if (Update(Status) AND inserted.Status = 'Paid')
begin
end
現時点では、「マルチパート識別子 "inserted.Status" をバインドできませんでした」というエラーが表示されます。
前もって感謝します!
2 つのステップに分割する必要があります。1. ステータスが更新された場合にのみ反応します。
if update(status)
begin
-- Do the stuff to the Paid elements in inserted
select * from inserted as i where i.status = 'Paid'
end
ステータスは、支払い済みから支払い済みに更新されることもあり、それに反応したくない場合があることを覚えておいてください。したがって、次のようなことができます:
select * from
inserted as i
inner join deleted as d on i.id = d.id
where i.status <> d.status and i.status = 'Paid'
現在、結果には、Paid に更新されていて、まだ Paid に等しくなっていなかった行のみが含まれます。