シミュレーション
Productsという名前のテーブルを含むSQLデータベースがあります。
製品のリストを取得し、カスタム・ビジネス・ロジックを実行してから、製品のリストを再度検索するストアド・プロシージャを実装しています。
ストアドプロシージャのカスタムビジネスロジックは、Productsテーブルのデータを変更しません。
ストアドプロシージャには、次のものが含まれます。

トランザクションが発生したときに、05行目のSELECT * FROM Products文から読み取られたデータが10行目のSELECT * FROM Products文から読み取られたデータと同じであることを確認するには、ストアド・プロシージャの行01を完了する必要があります。同時性を最大限にする必要があります。
正しいTransact-SQLの一部は、以下のアンサーエリアで提供されています。回答エリアに問題を解決し、記載された目標または要件を満たすコードを入力します。提供されているコード内に、その下にコードを追加することができます。


[構文の確認]ボタンを使用して作業内容を確認します。構文やスペルの誤りは、行と文字の位置によって報告されます。
正解:
REPEATABLE READ
説明/参照:
Explanation:
REPEATABLE READを1行目に追加して取得する:
TRANSACTIONISOLATION LEVEL REPEATABLE READを設定します。
REPEATABLE READは、変更されたがまだ他のトランザクションによってコミットされていないデータをステートメントが読み取ることができないこと、および現在のトランザクションが完了するまで他のトランザクションが現在のトランザクションによって読み取られたデータを変更できないことを指定します。
間違った回答:
READ UNCOMMITTEDは、文が他のトランザクションによって変更されたがまだコミットされていない行を読み取ることを指定します。
READ COMMITTEDは、変更されたが他のトランザクションによってコミットされていないデータを、文が読み取ることができないことを指定します。これにより、不正な読み込みを防止します。現在のトランザクション内の個々のステートメント間で他のトランザクションによってデータを変更することができます。これにより、反復不可能な読み込みやファントムデータが発生します。
参考資料:https://msdn.microsoft.com/en-us/library/ms173763.aspx