UPDATEの更新前の値を取得したい

回答受付中の質問

UPDATEの更新前の値を取得したい

SQLServer2008を使用して、
UPDATEの更新前と更新後の差分を出そうとしているのですが、
更新前の値が取れません。
更新後の値はOUTPUT句を使用してINSERTED.XXXでとっています。
更新前の値もOUTPUT句を使用してDELETED.XXXでとれるのかと思い試したら
INSERTED.XXXと同じ値(更新後の値)が取れてしまいました。
selectをしずに、更新前の値を取得する方法はありますでしょうか?
ご存知の方ご教授お願いいたします。

投稿日時 - 2012-02-20 22:04:49

連想キーワード:

QNo.7317379

すぐに回答ほしいです

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(2件中 1~2件目)

ANo.2

質問者さんの認識の通り、本来は、deleted.xxxで更新前の値を取ることができます。

下記のような簡単な例で確認できます。

declare @data table (k int, v int);
insert into @data values (1,1),(2,2),(3,3);
update @data set v=20 
output deleted.v, inserted.v
where k=2;

従って、書かれている以外の部分に原因があるはずです。

投稿日時 - 2012-02-25 22:29:51

ANo.1

私が業務でUpdateかける際には、同一のWhereを用意して
1)select
2)update
3)select
の3つをセットにしてspoolしてます。

spoolした1)と3)の差を取ればわかるので。

投稿日時 - 2012-02-20 22:18:19

あわせてチェックしたい
  • fortran FFT output ...
  • INSERT文 ...
  • INSERTにて ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら