Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Details
| Attribute | Value |
|---|---|
| Produktnamn | SQL Server |
| Händelse-ID | 3961 |
| Händelsekälla | MSSQLSERVER |
| Component | SQLEngine |
| Symboliskt namn | XACT_METADATA_INVALID |
| Meddelandetext | Transaktion med ögonblicksbildisolering misslyckades i databasen '%.*ls' eftersom objektet som åtkomstes av uttrycket har ändrats av ett DDL-uttryck i en annan samtidig transaktion sedan starten av denna transaktion. Det är inte tillåtet eftersom metadata inte är versioniserade. Samtidig uppdatering av metadata kan leda till inkonsekvens om det kombineras med ögonblicksbildisolering. |
Explanation
Detta fel kan uppstå om du frågar metadata under snapshot isolation och det finns en samtidig DDL-sats som uppdaterar metadata som nås under snapshot isolation. SQL Server stöder inte versionshantering av metadata. Av denna anledning finns det begränsningar för vilka DDL-operationer som kan utföras inom en explicit transaktion som körs under snapshot-isolering. En implicit transaktion är per definition ett enda uttalande som gör det möjligt att upprätthålla semantiken för snapshot-isolering även med DDL-satser. Följande DDL-satser är inte tillåtna under snapshot-isolering efter en BEGIN TRANSACTION-sats: , , , , , DBCC REINDEX, ALTER PARTITION FUNCTION, , ALTER PARTITION SCHEMEeller något common language runtime (CLR) DDL-sats. DROP INDEXALTER INDEXCREATE XML INDEXCREATE INDEXALTER TABLE Dessa uttalanden är tillåtna när du använder snapshot-isolering inom implicita transaktioner. En implicit transaktion är per definition ett enda uttalande som gör det möjligt att upprätthålla semantiken för snapshot-isolering även med DDL-satser.
Användaråtgärd
Ändra snapshot-isoleringsnivån till en icke-snapshot-isoleringsnivå, såsom read committed innan metadata beställs.