メタデータ アクセス、分離レベル、ロック ヒント

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

×

×