0
注文価格を更新するトリガーの作成に問題があります。複数行でのSQLトリガー
私は、order_idとgoods_idのペアを含むテーブルを持っています。 ここに私が削除に使用しているコードの断片があります。残りは基本的に同じです。
CREATE TRIGGER [update_price]
ON [dbo].[Goods-Order]
AFTER INSERT, DELETE, UPDATE
AS
BEGIN
if (exists(select * from deleted))
UPDATE dbo.Order set order_price -= (input_amount * (select goods_price from dbo.Goods where dbo.Goods.goods_id = deleted.goods_id)) from deleted where dbo.Orde.order_id = deleted.order_id
問題は同じORDER_IDを持つ複数の行は、オーダー品のテーブルに存在する場合、更新文はそれらの一方のみを処理するということです。
私は、スタックオーバーフローに関する同様の例をたくさん見ましたが、少し違っていて、私の状況には適用されません。
私は、カーソルを使用して削除されたテーブルのすべての行を反復処理するソリューションがあることを理解していますが、そのアプローチを避けたいと思います。出来ますか?
残念ながら同じorder_idを持つ複数の行については、まだ動作しません。そのうちの1つに基づいて更新されます。 –