トランザクション分離レベル
適用対象: SQL Server Azure 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 | いいえ | なし |