トランザクション分離レベル

適用対象: SQL ServerAzure SQL Managed Instance

SQL Server では、カタログ ビュー、互換性ビュー、情報スキーマ ビュー、またはメタデータ生成組み込み関数を使用してメタデータにアクセスするようなクエリでのロック ヒントの使用は保証されていません。

SQL Server データベース エンジン内部では、READ COMMITTED 分離レベルのみがメタデータ アクセスに使用されます。 たとえば、分離レベルが SERIALIZABLE のトランザクションで、カタログ ビューまたはメタデータ生成組み込み関数を使用したメタデータへのアクセスが試行されたとします。この場合、これらのクエリは、READ COMMITTED として完了するまで実行されます。 ただし、スナップショット分離では、同時実行の DDL 操作により、メタデータへのアクセスが失敗する場合があります。 これは、メタデータのバージョンが管理されないためです。 したがって、スナップショット分離で次のものにアクセスすると、失敗することがあります。

  • カタログ ビュー

  • 互換性ビュー

  • 情報スキーマ ビュー

  • メタデータ生成組み込み関数

  • sp_help グループのストアド プロシージャ

  • SQL Server Native Client カタログ プロシージャ

  • 動的管理ビューと動的管理関数

分離の詳細については、「SET TRANSACTION ISOLATION LEVEL (Transact-SQL)」を参照してください。

次の表は、各種の分離レベルでのメタデータ アクセスをまとめたものです。

分離レベル サポートされています 使用
READ UNCOMMITTED いいえ 保証なし
READ COMMITTED はい はい
REPEATABLE READ いいえ いいえ
SNAPSHOT ISOLATION いいえ いいえ
SERIALIZABLE いいえ いいえ