MSSQLSERVER_3961
Details
Produktname |
SQL Server |
Produktversion |
10.50 |
Buildnummer des Produkts |
10.00.1050.6 |
Ereignis-ID |
3961 |
Ereignisquelle |
MSSQLSERVER |
Komponente |
SQLEngine |
Symbolischer Name |
XACT_METADATA_INVALID |
Meldungstext |
Fehler bei der Momentaufnahmeisolationstransaktion 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 Momentaufnahmeisolation zu Inkonsistenzen führen. |
Erklärung
Dieser Fehler kann auftreten, wenn Metadaten unter der Momentaufnahmeisolation abgefragt werden und gleichzeitig eine DDL-Anweisung vorhanden ist, mit der die Metadaten aktualisiert werden, auf die unter der Momentaufnahmeisolation 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 Momentaufnahmeisolation ausgeführten expliziten Transaktion ausgeführt werden, Einschränkungen. Eine implizite Transaktion ist definitionsgemäß eine einzelne Anweisung, mit der die Semantik der Momentaufnahmeisolation auch in DDL-Anweisungen erzwungen werden kann. Die folgenden DDL-Anweisungen sind nach einer BEGIN TRANSACTION-Anweisung unter Momentaufnahmeisolation 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 Momentaufnahmeisolation in impliziten Transaktionen verwendet wird. Eine implizite Transaktion ist definitionsgemäß eine einzelne Anweisung, mit der die Semantik der Momentaufnahmeisolation auch in DDL-Anweisungen erzwungen werden kann.
Benutzeraktion
Ändern Sie die Momentaufnahmeisolationsstufe vor dem Abfragen von Metadaten in eine Isolationsstufe, bei der es sich nicht um eine Momentaufnahmeisolationsstufe handelt, z. B. Read Committed.