メタデータ アクセス、分離レベル、ロック ヒント
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 |
× |
× |