MSSQLSERVER_3961

자세한 정보

제품 이름

SQL Server

제품 버전

11.0

제품 빌드 번호

10.00.1050.6

이벤트 ID

3961

이벤트 원본

MSSQLSERVER

구성 요소

SQLEngine

심볼 이름

XACT_METADATA_INVALID

메시지 텍스트

"문에서 액세스한 개체가 이 트랜잭션이 시작된 후 다른 동시 트랜잭션의 DDL 문에 의해 수정되어 데이터베이스 '%.*ls'에서 스냅숏 격리 트랜잭션이 실패했습니다. 메타데이터에 버전이 지정되지 않았으므로 이 트랜잭션은 허용되지 않습니다. 스냅숏 격리를 함께 사용하여 메타데이터에 대해 동시 업데이트를 수행하면 일관되지 않은 결과가 발생할 수 있습니다."

설명

스냅숏 격리에서 메타데이터를 쿼리 중이고 스냅숏 격리에서 액세스하는 메타데이터를 업데이트하는 동시 DDL 문이 있을 경우 이 오류가 발생할 수 있습니다. SQL Server에서는 메타데이터의 버전 관리를 지원하지 않습니다. 따라서 스냅숏 격리에서 실행하는 명시적 트랜잭션에서 수행할 수 있는 DDL 작업에 대한 제한 사항이 있습니다. 기본적으로 암시적 트랜잭션은 DDL 문에서도 스냅숏 격리의 의미 체계를 적용할 수 있게 하는 단일 문입니다. ALTER TABLE, CREATE INDEX, CREATE XML INDEX, ALTER INDEX, DROP INDEX, DBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME 또는 CLR(공용 언어 런타임) DDL 문과 같은 DDL 문은 BEGIN TRANSACTION 문 다음에 스냅숏 격리에서 허용되지 않습니다. 이러한 문은 암시적 트랜잭션 내에서 스냅숏 격리를 사용할 때 허용됩니다. 기본적으로 암시적 트랜잭션은 DDL 문에서도 스냅숏 격리의 의미 체계를 적용할 수 있게 하는 단일 문입니다.

사용자 동작

메타데이터를 쿼리하기 전에 스냅숏 격리 수준을 커밋된 읽기와 같은 비스냅숏 격리 수준으로 변경합니다.