3961
Product Name Event ID 3961 Event Source MSSQLSERVER Component SQLEngine Symbolic Name XACT_METADATA_INVALID Message Text Snap
Product
Name
Event ID
3961
Event
Source
MSSQLSERVER
Component
SQLEngine
Symbolic
Name
XACT_METADATA_INVALID
Message
Text
Snapshot isolation transaction failed in database ’%.*ls’ because the object accessed by the
statement has been modified by a DDL statement in another concurrent transaction since
the start of this transaction. It is disallowed because the metadata is not versioned. A
concurrent update to metadata can lead to inconsistency if mixed with snapshot isolation.
This error can occur if you are querying metadata under snapshot isolation and there is a
concurrent DDL statement that updates the metadata that is being accessed under snapshot
isolation. SQL Server does not support versioning of metadata. For this reason, there are
restrictions on what DDL operations can be performed within an explicit transaction running
under snapshot isolation. An implicit transaction, by definition, is a single statement which
makes it possible to enforce the semantics of snapshot isolation even with DDL statements.
The following DDL statements are not permitted under snapshot isolation after a BEGIN
TRANSACTION statement: ALTER TABLE, CREATE INDEX, CREATE XML INDEX, ALTER INDEX,
DROP INDEX, DBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME, or any
common language runtime (CLR) DDL statement. These statements are permitted when you
are using snapshot isolation within implicit transactions. An implicit transaction, by definition, is
a single statement which makes it possible to enforce the semantics of snapshot isolation even
with DDL statements.
ノ
Expand table