2011-07-14 10 views
1

は:INSERTコマンドで渡されたトリガーを作成するために、値を取得するために行うことができ、次の更新された値を取得する方法は?例えば

SELECT @pid=Product_ID, @q=Item_Quantity, @invid=Invoice_ID FROM Inserted 

だから、私はINSERTコマンドとして渡された値へのアクセスを持っているでしょうトリガーでSQL Serverで使用します。 UPDATEコマンドと同等のものは何ですか? UPDATEコマンドを使用してプログラムからSQL Serverに渡す値はどのように取得できますか?以下のような 何かは私にエラーを与える:

SELECT @pid=Product_ID, @q=Item_Quantity, @invid=Invoice_ID FROM Updated 
+1

トリガーがあり、任意の値をスカラー変数に設定するために形状やフォームを使用しようとしている場合は、再設計する必要があります。 SQlサーバのトリガは一度に1つではなく、レコードのグループに対して動作します。データの整合性の乱れを作成している間は、既存のトリガーを直ちに書き直す必要があります。 – HLGEM

答えて

0

あなたが更新されたかを知るために挿入、削除の組み合わせを使用する必要があります。更新される行ごとに、元の値が[削除済み]に表示され、新しい値が[挿入済み]に表示されます。

したがって、UPDATEから新しい値を取得したい場合は、INSERTに使用したのと同じクエリを使用できます。

+0

ありがとうございます。出来た! – nummer31

+0

元のコードに既に致命的な欠陥があることを除いて、部分的に真です。 – HLGEM

+0

@ nummer31の場合は、複数のレコードを更新する更新プログラムでテストしてください。 – HLGEM

関連する問題