ADO.NETの質問・雑談スレ2 (421レス)
上下前次1-新
295: 2009/12/03(木)20:09 ID:??? AAS
>>294
Transactionを明示的に指定しない場合、SQL Serverは自動コミット モードで動作する
自動コミット モードではステートメント単位でトランザクションが自動的に発行される
例)
insert
insert
は概念的には
begin tran
insert
commit tran
begin tran
insert
commit tran
と解釈される
よって、1つのSQL文の実行中に、まったく同時に他のSQL文を実行したからといって
それが行単位である限り、それぞれのSQL文は自動的に発行されたトランザクションで
保護されているため、同時に実行したことが原因でデータを破壊してしまうようなことはない
なお、SQL Server のデフォルトの分離レベルはREAD COMMITTEDなので
自動コミットでもREAD COMMITTEDが適用されるはず
外部リンク:support.microsoft.com
外部リンク[aspx]:technet.microsoft.com
カーソルを使った場合の説明は以下
外部リンク[aspx]:technet.microsoft.com
ちなみにトランザクションが必要なのは、複数のSQLの結果をまとめてコミット/ロールバックしたい場合、
複数のINSERT/UPDATEの途中でSELECTされたら困る場合、あるいは性能を意識する場合など
その場合の記述方法はデータベースの入門書を読んで勉強してくれ
上下前次1-新書関写板覧索設栞歴
あと 126 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s