• 締切済み

SQLのUPDATE文について

SQLSERVER 2000を使っています。 項目1には新しい情報が入り、 項目2には以前の項目1の情報を残すというような データの更新のことで考えているのですが、 UPDATE tableA SET 項目1 = '新規', 項目2 = 項目1 というように、1度のSQLで処理してしまうのは安全なのでしょうか? 試しに実行してみたところ希望の結果を得ることができましたが、 先に項目1が更新されてその値を項目2も持ってしまうような気がして不安になっています。 2度の処理に分割すると余計な処理時間が発生してしまうと思い、 安全であると確証が持てるならば、1度で処理したいと思っています。 何かおわかりになることがあればアドバイス下さい。

みんなの回答

  • cse_ri2
  • ベストアンサー率25% (830/3286)
回答No.1

不安に思うのであれば、正規のMS-SQLServerの教育を受け、 正しい知識を習得することをオススメします。 SQL-Serverが内部でどういう動きをしているかについて精通 すれば、不安も自然と取り除かれるかと。 ちなみにSQL-Serverに限りませんが、通常のRDBMSであれば、 COMMIT文を発行するまでは書き込んだ値が確定しませんので、 書き込んだ結果に問題があるようであれば、ROLLBACK文を 実行すれば、元に戻ります。

soma3
質問者

お礼

回答ありがとうございます。 正規の教育というもの・・・受けてみたいです。 でも、実際は予算も時間も余裕がなく、 WEBと本で情報を漁るのが限界です。 それゆえに、知ってる方がいたらと質問させてもらいました。 また、トランザクション処理の方ですが、 書き込んだ結果に問題があるかどうかというのは、 UPDATE文実行後、チェックのためのSQL文を 実行すると言うことになるのでしょうか?

関連するQ&A