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

適用対象: ○SQL Server (2012 以降) XAzure SQL Database XAzure SQL Data Warehouse XParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2012) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server では、カタログ ビュー、互換性ビュー、情報スキーマ ビュー、またはメタデータ生成組み込み関数を使用してメタデータにアクセスするようなクエリでのロック ヒントの使用は保証されていません。does not guarantee that lock hints will be honored in queries that access metadata through catalog views, compatibility views, information schema views, metadata-emitting built-in functions.

SQL Server データベース エンジンSQL Server Database Engine内部では、READ COMMITTED 分離レベルのみがメタデータ アクセスに使用されます。Internally, the SQL Server データベース エンジンSQL Server Database Engine only honors the READ COMMITTED isolation level for metadata access. たとえば、分離レベルが SERIALIZABLE のトランザクションで、カタログ ビューまたはメタデータ生成組み込み関数を使用したメタデータへのアクセスが試行されたとします。この場合、これらのクエリは、READ COMMITTED として完了するまで実行されます。If a transaction has an isolation level that is, for example, SERIALIZABLE and within the transaction, an attempt is made to access metadata by using catalog views or metadata-emitting built-in functions, those queries will run until they are completed as READ COMMITTED. ただし、スナップショット分離では、同時実行の DDL 操作により、メタデータへのアクセスが失敗する場合があります。However, under snapshot isolation, access to metadata might fail because of concurrent DDL operations. これは、メタデータのバージョンが管理されないためです。This is because metadata is not versioned. したがって、スナップショット分離で次のものにアクセスすると、失敗することがあります。Therefore, accessing the following under snapshot isolation might fail:

  • カタログ ビューCatalog views

  • 互換性ビューCompatibility views

  • 情報スキーマ ビューInformation Schema Views

  • メタデータ生成組み込み関数Metadata-emitting built-in functions

  • sp_help グループのストアド プロシージャsp_help group of stored procedures

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

  • 動的管理ビューと動的管理関数Dynamic management views and functions

分離レベルについての詳細については、「SET TRANSACTION ISOLATION LEVEL (Transact-SQL)」を参照してください。For more information about isolation levels, see SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

次の表は、各種の分離レベルでのメタデータ アクセスをまとめたものです。The following table provides a summary of metadata access under various isolation levels.

分離レベルIsolation level SupportedSupported 使用Honored
READ UNCOMMITTEDREAD UNCOMMITTED いいえNo 保証なしNot guaranteed
READ COMMITTEDREAD COMMITTED はいYes はいYes
REPEATABLE READREPEATABLE READ いいえNo いいえNo
SNAPSHOT ISOLATIONSNAPSHOT ISOLATION いいえNo いいえNo
SERIALIZABLESERIALIZABLE いいえNo いいえNo