Príznaky
Môžete zmeniť typ údajov stĺpca v tabuľke databázy z ntext na nvarchar (max) na serveri so spustenou službou Microsoft SQL Server 2012, 2014 alebo 2016. Pri aktualizácii tabuľky pridaním viac než 4 000 záznamov môže DBCC CHECKDB nahlásiť chyby, ktoré sa podobajú takto:
MSG 8961, úroveň 16, štát 1, lineNumber Chyba tabuľky: objectID, indexID, partitionID, allocUnitID (zadajte údaje LOB). Uzol údajov mimo riadka na stránke (pageid), slot 0, textID sa nezhoduje s odkazom zo stránky (pageid), slot 0. MSG 8961, úroveň 16, štát 1, lineNumber Chyba tabuľky: objectID, indexID, partitionID, allocUnitID (zadajte údaje LOB). Uzol údajov mimo riadka na stránke (pageid), slot 0, textID sa nezhoduje s odkazom zo stránky (pageid), slot 0. MSG 8929, úroveň 16, štát 1, lineNumberobjectID, indexID, partitionID, allocUnitID (zadajte údaje do riadka): chyby nájdené v údajoch z iných riadkov s identifikáciou vo vlastníctve údajového záznamu označeného RID = (RID) DBCC výsledky pre 'tablename'. Existuje 1 riadkov na 1 strane objektu "tablename". CHECKTABLE našiel 0 chýb vyhradenia a 3 chyby konzistencie v tabuľke "tablename" (objectID). repair_allow_data_loss je minimálna úroveň opráv pre chyby, ktoré zistila DBCC CHECKTABLE (DatabaseName. tablename). DBCC spustenie dokončené. Ak sa v chybových hláseniach DBCC vytlačí, obráťte sa na správcu systému.
Riešenie
Tento problém je vyriešený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:
Kumulatívna aktualizácia 5 pre SQL Server 2016 RTM
Kumulatívna aktualizácia 2 pre SQL Server 2016 SP1
Kumulatívna aktualizácia 4 pre SQL Server 2014 SP2
Kumulatívna aktualizácia 11 pre SQL Server 2014 SP1
Kumulatívna aktualizácia 7 pre SQL Server 2012 Service Pack 3
Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky opravy hotfix a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Posledná Kumulatívna aktualizácia pre SQL Server 2016
Alternatívne riešenie
Ak chcete tento problém obísť po zmene typu údajov, nastavte možnosť typ veľkých hodnôt z riadka na hodnotu 1.
ALTER TABLE TableName ALTER COLUMN COLUMN_NAME nvarchar(max) NOT NULL
go
exec sp_tableoption 'TableName', 'large value types out of row', '1'
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.
Odkazy
Oboznámte sa s terminológiou , ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.