• 締切済み

同一トランザクションの中でテーブルの更新結果を参照できるか?

VB5.0+SQL-Serverで、以下のような処理を 検討しているのですが、いい方法がみつかりません。 つまり、同一トランザクションの中で更新結果を 参照することが出来るのでしょうか? ご教授いただけると幸いです。 【検討中の処理】 トランザクション開始(BegenTrans)  テーブルA更新  テーブルAの更新結果を参照してテーブルBを更新 (この時点ではトランザクションを終了していないので、  テーブルAの更新結果が参照できない) トランザクション終了(CommitTrans)

みんなの回答

  • quoth
  • ベストアンサー率31% (158/506)
回答No.1

SQLサーバーはあまり詳しくないのですが、 Aの更新の結果がどうだったか(成功したのかエラーだったのかといった意味)をチェックしてからやるのでしたら、一度commitする必要があります。 ただ、更新結果のなんかしらの値を知りたいのであれば、updateの前に、select参照をして値を持っておく必要があると思います。 SQLサーバーにはcommitだけ(トランザクションの終了を伴わないcommit)はないのですか? 質問ばっかりなので、自信なしです。

mogmogtae
質問者

補足

ご回答ありがとうございます。 実更新はA,B同時に行いたいのですが、その前に 一時的にでもテーブルAが(見かけ上)更新できない ものかなぁ、と。 例えばMDBだとそれが出来るような気がするのですが。 確かにテーブルA更新時にcommitすれば、その結果を 参照できるのでしょうが、あくまでAB同時更新したいので。 SQL-ServerはVer.7.0です。

関連するQ&A