MSSQLSERVER_3961
Details
Produktname |
SQL Server |
Produktversion |
10.0 |
Buildnummer des Produkts |
10.00.1050.6 |
Ereignis-ID |
3961 |
Ereignisquelle |
MSSQLSERVER |
Komponente |
SQLEngine |
Symbolischer Name |
XACT_METADATA_INVALID |
Meldungstext |
Fehler bei der Snapshotisolationstransaktion in der '%.*ls'-Datenbank, weil das von der Anweisung zugegriffene Objekt durch eine DDL-Anweisung in einer anderen gleichzeitigen Transaktion seit dem Beginn dieser Transaktion geändert wurde. Dies ist nicht zulässig, weil die Metadaten nicht versionsspezifisch sind. Die gleichzeitige Aktualisierung von Metadaten kann in Kombination mit der Snapshotisolation zu Inkonsistenzen führen. |
Erklärung
Dieser Fehler kann auftreten, wenn Metadaten unter der Snapshotisolation abgefragt werden und gleichzeitig eine DDL-Anweisung vorhanden ist, mit der die Metadaten aktualisiert werden, auf die unter der Snapshotisolation zugegriffen wird. SQL Server unterstützt keine Versionsverwaltung von Metadaten. Aus diesem Grund gibt es bezüglich der DDL-Vorgänge, die in einer unter Snapshotisolation ausgeführten expliziten Transaktion ausgeführt werden, Einschränkungen. Eine implizite Transaktion ist definitionsgemäß eine einzelne Anweisung, mit der die Semantik der Snapshotisolation auch in DDL-Anweisungen erzwungen werden kann. Die folgenden DDL-Anweisungen sind nach einer BEGIN TRANSACTION-Anweisung unter Snapshotisolation nicht zulässig: ALTER TABLE, CREATE INDEX, CREATE XML INDEX, ALTER INDEX, DROP INDEX, DBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME sowie alle CLR (Common Language Runtime)-DDL-Anweisungen. Diese Anweisungen sind zulässig, wenn die Snapshotisolation in impliziten Transaktionen verwendet wird. Eine implizite Transaktion ist definitionsgemäß eine einzelne Anweisung, mit der die Semantik der Snapshotisolation auch in DDL-Anweisungen erzwungen werden kann.
Benutzeraktion
Ändern Sie die Snapshotisolationsstufe vor dem Abfragen von Metadaten in eine Isolationsstufe, bei der es sich nicht um eine Snapshotisolationsstufe handelt, z. B. Read Committed.