Symptomen
U kunt het gegevenstype van een kolom in een databasetabel wijzigen van ntext in nvarchar (max) op een server waarop microsoft SQL Server 2012, 2014 of 2016 wordt uitgevoerd. Wanneer u de tabel bijwerkt door meer dan 4.000 records toe te voegen, kunnen DBCC CHECKDB fouten melden die op de volgende lijken:
Msg 8961, niveau 16, provincie 1, LineNumber Tabelfout: ObjectID, indexID, PARTITIONID, allocUnitID (type LOB-gegevens). Het knooppunt gegevens uit de rij (pageID), sleuf 0, textID stemt niet overeen met de verwijzing van de pagina (pageID), sleuf 0. Msg 8961, niveau 16, provincie 1, LineNumber Tabelfout: ObjectID, indexID, PARTITIONID, allocUnitID (type LOB-gegevens). Het knooppunt gegevens uit de rij (pageID), sleuf 0, textID stemt niet overeen met de verwijzing van de pagina (pageID), sleuf 0. Msg 8929, niveau 16, status 1, LineNumberObjectID, indexID, partitionID, allocUnitID (type in-Row-gegevens): fouten gevonden in niet-rijgegevens met id waarnaar gegevensrecord is gekoppeld, aangeduid met RID = (RID) DBCC results voor 'TableName'. Er zijn 1 rijen in 1 pagina's voor object 'tabelnaam'. CHECKTABLE heeft 0 toewijzingsfouten en 3 consistentiefouten aangetroffen in tabelnaam' (ObjectID). repair_allow_data_loss is het minimale herstelniveau voor de fouten die zijn aangetroffen door DBCC CHECKTABLE (databasenaam. tabelnaam). DBCC-uitvoering voltooid. Neem contact op met uw systeembeheerder als er foutberichten in DBCC werden afgedrukt.
Oplossing
Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:
Cumulatieve update 5 voor SQL Server 2016 RTM
Cumulatieve update 2 voor SQL Server 2016 SP1
Cumulatieve update 4 voor SQL Server 2014 SP2
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en beveiligingsfixes die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Nieuwste cumulatieve update voor SQL Server 2016
Workaround
Als u dit probleem wilt omzeilen wanneer u het gegevenstype hebt gewijzigd, stelt u de optie voor de grote waarden van de optie niet in rij in op 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 heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Verwijzingen
Informatie over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.