2010-12-10 4 views
4

SQLTransactionを使用する適切な時期は何ですか?いつSQLTransactionを使うべきですか

すべて私のINSERT、UPDATE、DELETEステートメントのに使用します。

これは正しい使用法ですか、それとも過剰な過労ですか?

答えて

7

一連のステートメントをアトミックに処理する場合、つまり、すべて成功してコミットされているか、すべてロールバックされている場合にトランザクションを使用します。

単純なステートメントはすでにアトミックなので、個々のステートメントごとにトランザクションを明示的に作成する必要はありません。

+1

これは理にかなっています。私はいつも必要以上に多くの仕事をしていると思っていました。おそらく他のコーダーを動揺させることさえあります。 – Popeye

1

あなたのコマンドがグループではなく単独で発行されている場合は、おそらく過剰です。トランザクションは、SQLコマンドをまとめてグループ化するために使用されます。グループには、すべてのメンバーが成功する必要があります。

http://en.wikipedia.org/wiki/Atomicity_%28database_systems%29

2

あなたが複数のステートメントを行うことを計画し、どこかにラインの下のエラーが発生した場合のステートメントから生じたデータの変更のすべてをロールバックすることを計画している場合にのみ、トランザクションを必要とします。単一の更新/削除ステートメントをラップする必要はありません。単一のコマンドでエラーが発生した場合は、フロントエンドコードでエラーを捕捉して処理するだけです。

関連する問題