MSSQLSERVER_3961

A következőkre vonatkozik:SQL Server

Részletek

Attribute Value
Termék neve SQL Server
Eseményazonosító 3961
Eseményforrás MSSQLSERVER
Összetevő SQLEngine
Szimbolikus név XACT_METADATA_INVALID
Üzenet szövege A pillanatkép-elkülönítési tranzakció nem sikerült a%.*ls adatbázisban, mert az utasítás által elért objektumot egy DDL-utasítás módosította egy másik egyidejű tranzakcióban a tranzakció kezdete óta. Ez nem engedélyezett, mert a metaadatok nem verziószámozottak. A metaadatok egyidejű frissítése inkonzisztenciát okozhat, ha közben pillanatkép-elkülönítésre is sor kerül.

Explanation

Ez a hiba akkor fordulhat elő, ha a snapshot izoláció alatt metaadatot kérdezünk, és egy párhuzamos DDL utasítás is frissíti a snapshot izoláció alatt elérhető metaadatokat. Az SQL Server nem támogatja a metaadatok verziózását. Ezért korlátozások vannak arra, hogy egy explicit tranzakcióban végrehajtható DDL műveletek végezhetők snapshot izoláció alatt. Az implicit tranzakció definíció szerint egyetlen állítás, amely lehetővé teszi a snapshot izolálás szemantikájának érvényesítését még DDL állításokkal is. A következő DDL utasítások nem engedélyezettek snapshot izolálás alatt egy BEGIN TRANSACTION utasítás után: ALTER TABLE, CREATE INDEX, CREATE XML INDEXDROP INDEXALTER INDEXDBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME, vagy bármely közös nyelvi futás idejű (CLR) DDL utasítás. Ezek az állítások engedélyezettek, amikor implicit tranzakciókon belül pillanatkép-elkülönítést használ. Az implicit tranzakció definíció szerint egyetlen állítás, amely lehetővé teszi a snapshot izolálás szemantikájának érvényesítését még DDL állításokkal is.

Felhasználói művelet

Változtasd a snapshot izolációs szintjét egy nem snapshot izolációs szintre, például olvasási elkülönítésre, mielőtt metaadatot kérnél.