Problembeschreibung
Sie können den Datentyp einer Spalte in einer Datenbanktabelle von ntext in nvarchar (max) auf einem Server ändern, auf dem Microsoft SQL Server 2012, 2014 oder 2016 ausgeführt wird. Wenn Sie die Tabelle durch Hinzufügen von mehr als 4.000-Datensätzen aktualisieren, meldet DBCC CHECKDB möglicherweise Fehler, die wie folgt aussehen:
Msg 8961, Ebene 16, Zustand 1, LineNumber Tabellenfehler: objectID, Index-Nr, Partitions- allocUnitID (LOB-Daten eingeben). Der Datenknoten "außerhalb der Zeile" auf der Seite (Seiten-Nr.), Slot 0, Text -Nr entspricht dem Verweis von Seite (Seiten-Nr.), Slot 0. Msg 8961, Ebene 16, Zustand 1, LineNumber Tabellenfehler: objectID, Index-Nr, Partitions- allocUnitID (LOB-Daten eingeben). Der Datenknoten "außerhalb der Zeile" auf der Seite (Seiten-Nr.), Slot 0, Text -Nr entspricht dem Verweis von Seite (Seiten-Nr.), Slot 0. Msg 8929, Ebene 16, Zustand 1, LineNumber-objectID, Index-ID, Partitionierung, allocUnitID (geben Sie in-row-Daten ein): Fehler, die in Offline-Daten gefunden wurden, mit einer ID im Besitz des Datensatzes, der durch RID = (RID) gekennzeichnet ist DBCC-Ergebnisse für "Tabellenname". Es gibt 1 Zeilen auf 1 Seiten für das Objekt "Name". CHECKTABLE hat 0 Zuordnungsfehler und 3 Konsistenzfehler in derTabelle "TableName" (objectID) gefunden. REPAIR_ALLOW_DATA_LOSS ist die minimale Reparaturstufe für die Fehler, die von DBCC CHECKTABLE (DatabaseName. filename) gefunden wurden. DBCC-Ausführung abgeschlossen. Wenn DBCC Fehlermeldungen gedruckt hat, wenden Sie sich an Ihren System Administrator.
Fehlerbehebung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:
Kumulatives Update 5 für SQL Server 2016 RTM
Kumulatives Update 2 für SQL Server 2016 SP1
Kumulatives Update 4 für SQL Server 2014 SP2
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Neuestes Kumulatives Update für SQL Server 2016
Problemumgehung
Um dieses Problem zu umgehen, nachdem Sie den Datentyp geändert haben, setzen Sie die Option für große Wertetypen außerhalb der Zeile auf 1.
ALTER TABLE TableName ALTER COLUMN COLUMN_NAME nvarchar(max) NOT NULL
go
exec sp_tableoption 'TableName', 'large value types out of row', '1'
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Informieren Sie sich über die Terminologie , die Microsoft zum Beschreiben von Softwareupdates verwendet.