家・車以外で、人生で一番奮発した買い物

SQLSERVER 2000を使っています。
項目1には新しい情報が入り、
項目2には以前の項目1の情報を残すというような
データの更新のことで考えているのですが、

UPDATE tableA SET 項目1 = '新規', 項目2 = 項目1

というように、1度のSQLで処理してしまうのは安全なのでしょうか?
試しに実行してみたところ希望の結果を得ることができましたが、
先に項目1が更新されてその値を項目2も持ってしまうような気がして不安になっています。
2度の処理に分割すると余計な処理時間が発生してしまうと思い、
安全であると確証が持てるならば、1度で処理したいと思っています。
何かおわかりになることがあればアドバイス下さい。

A 回答 (1件)

不安に思うのであれば、正規のMS-SQLServerの教育を受け、


正しい知識を習得することをオススメします。
SQL-Serverが内部でどういう動きをしているかについて精通
すれば、不安も自然と取り除かれるかと。

ちなみにSQL-Serverに限りませんが、通常のRDBMSであれば、
COMMIT文を発行するまでは書き込んだ値が確定しませんので、
書き込んだ結果に問題があるようであれば、ROLLBACK文を
実行すれば、元に戻ります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

正規の教育というもの・・・受けてみたいです。
でも、実際は予算も時間も余裕がなく、
WEBと本で情報を漁るのが限界です。
それゆえに、知ってる方がいたらと質問させてもらいました。

また、トランザクション処理の方ですが、
書き込んだ結果に問題があるかどうかというのは、
UPDATE文実行後、チェックのためのSQL文を
実行すると言うことになるのでしょうか?

お礼日時:2003/12/04 12:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す