SELECT
SQLServerデータベースでクエリを実行するSqlCommandを介してアプリケーションにフェッチされているデータのリストがいくつかあります。SqlCommandでトランザクションを明示的に設定するのではなく、SqlConnectionを渡して実行するだけです。ReadCommitted
トランザクションが指定されていない場合、SQL ServerはデフォルトのIsolationLevelが?のデフォルトのトランザクションを開始して使用します。
4299 次
2 に答える
8
SQL はステートメントに対して暗黙的にトランザクションを作成し、このトランザクションはステートメントが完了するとコミットされます。このトランザクションの分離レベルは現在の分離レベルになり、デフォルトは READ COMMITTED になります。特定のステートメントは、現在の分離レベルを上書きし、READ COMMITTED を強制します (例: RECEIVE)。
SqlCommand がバッチ (複数のステートメント) を実行する場合、テーブルにアクセスする各ステートメントは独自のトランザクションを作成します。
トランザクションのデフォルトの自動コミットは、SET IMPLICIT_TRANSACTION ON を変更することによって制御されます。
詳細については、トランザクションの制御を参照してください。
于 2009-06-19T09:52:13.633 に答える
3
SQL Server は、明示的なトランザクションがなくても問題なく動作します。UPDLOCK
しかし、はい、それは本質的に読み取りコミットされていると思います(もちろん、 /などのクエリオブジェクトに追加のヒントを追加しない限りNOLOCK
)。これは次の方法で調査できます。
DBCC USEROPTIONS
(とりわけ)を示しています:
isolation level read committed
于 2009-06-19T09:25:22.300 に答える