Table1という名前のテーブルを使用するレポートアプリケーションがあります。新しいバッチ更新プロセスを展開して、Table1の更新を実行します。
環境は、次のプロパティで構成されます。
データベースは、デフォルトの分離設定で構成されています。

アプリケーションとプロセスは、デフォルトのトランザクション処理を使用します。

プロセスが使用している行にはアプリケーションがアクセスできないことがわかります。
あなたには次の要件があります。
プロセスによってアプリケーションがブロックされていないことを確認します。

アプリケーションにデータの一貫したビューがあることを確認する

アプリケーションがダーティデータを読み取らないようにしてください。

問題を解決し、最小限の管理作業で要件を満たす必要があります。
あなたは何をするべきか?
正解:B
説明/参照:
Explanation:
スナップショットの分離は、トランザクションで使用される前にALLOW_SNAPSHOT_ISOLATION ONデータベース・オプションを設定して有効にする必要があります。これにより、テンポラリ・データベース(tempdb)に行バージョンを格納するメカニズムがアクティブになります。
READ COMMITTEDは、SQL Serverの既定の分離レベルです。これは、変更されたがまだ他のトランザクションによってコミットされていないデータ値をステートメントが読み取ることができないことを指定することによって、ダーティー読み取りを防止します。
他のトランザクションは、現在のトランザクション内の個々のステートメントの実行間でデータの変更、挿入、または削除を行うことができます。その結果、反復不可能な読み取りまたは「ファントム」データが発生します。
間違った回答:
A:SERIALIZABLEは、キーの全範囲をロックし、トランザクションが完了するまでロックを保持するため、最も限定的な分離レベルです。 REPEATABLE READを含み、トランザクションが完了するまでトランザクションによって読み取られた範囲に他のトランザクションが新しい行を挿入できないという制限を追加します。
参考文献:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/snapshot-isolation-in-sql-server