適用対象:SQL Server
詳細
| 属性 | 値 |
|---|---|
| 製品名 | SQL Server |
| イベント ID | 601 |
| イベント ソース | MSSQLSERVER |
| コンポーネント | SQLEngine |
| シンボル名 | |
| メッセージ テキスト | データが移動されたので NOLOCK を使用したスキャンは続行できませんでした。 |
説明
SQL Server データベース エンジンは、別のトランザクションによって更新または削除されたデータを読み取ろうとしているため、クエリの実行を続行できません。 クエリでは、NOLOCK ロック ヒントまたは READ UNCOMMITTED トランザクション分離レベルが使用されます。
通常、別のトランザクションによって変更されているデータへのアクセスは、データがロックされているために拒否されます。 ただし、NOLOCK ロック ヒントと READ UNCOMMITTED トランザクション分離レベルでは、別のトランザクションによってロックされているデータをクエリで読み取る必要があります。 このシナリオは、まだコミットされておらず、変更される可能性がある値を読み取ることができるため、ダーティ読み取りと呼ばれます。
ユーザー アクション
このエラーが発生するとクエリは取り消されます。 クエリを再送信するか、NOLOCKロック ヒントを削除します。 または、READ COMMITTED (既定) やSNAPSHOTなどの適切な分離レベルを使用して、このエラーを回避しながらダーティ 読み取りを回避します。
関連コンテンツ
- MSSQLSERVER_605
- テーブル ヒント (Transact-SQL)
- SELECT(Transact-SQL)
- トランザクション分離レベル (Transact-SQL) を設定