Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Details
| Attribute | Value |
|---|---|
| Název produktu | SQL Server |
| ID události | 3961 |
| Zdroj události | MSSQLSERVER |
| Součást | SQLEngine |
| Symbolický název | XACT_METADATA_INVALID |
| Text zprávy | Transakce izolace snímků selhala v databázi '%.*ls', protože objekt přístupný příkazem byl změněn příkazem DDL v jiné souběžné transakci od začátku této transakce. Tato akce je zakázaná, protože metadata nemají verzování. Souběžná aktualizace metadat může vést k nekonzistencím, pokud se kombinuje s izolací snímku. |
Vysvětlení
Tato chyba může nastat, pokud dotazujete metadata v rámci izolace snímků a existuje současný DDL příkaz, který aktualizuje metadata přístupná v izolaci snímku. SQL Server nepodporuje verzování metadat. Z tohoto důvodu existují omezení ohledně toho, jaké DDL operace lze provádět v rámci explicitní transakce běžící pod izolací snapshotu. Implicitní transakce je podle definice jediný příkaz, který umožňuje vynutit sémantiku izolace snímků i u DDL příkazů. Následující DDL příkazy nejsou povoleny při izolaci snapshotu po příkazu BEGIN TRANSACTION: ALTER TABLE, , CREATE INDEXCREATE XML INDEX, ALTER INDEX, DROP INDEXDBCC REINDEX, ALTER PARTITION FUNCTION, , ALTER PARTITION SCHEMEnebo jakýkoli DDL příkaz v běžném jazyce (CLR). Tyto příkazy jsou povoleny, pokud používáte izolaci snímků v rámci implicitních transakcí. Implicitní transakce je podle definice jediný příkaz, který umožňuje vynutit sémantiku izolace snímků i u DDL příkazů.
Uživatelská akce
Změňte úroveň izolace snapshotu na úroveň izolace mimo snapshot, například čtení commcommitted před dotazováním metadat.