Applies ToSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Simptomai

Galite keisti duomenų tipo stulpelį duomenų bazės lentelėje iš ntext į nvarchar (max) serveryje, kuriame veikia "Microsoft SQL Server" 2012, "2014" arba "2016". Kai naujinate lentelę įtraukdami daugiau nei 4 000 įrašą, DBCC CHECKDB gali pranešti apie tokias klaidas:

MSG 8961, lygis 16, 1 valstybė, LineNumber Lentelės klaida: ObjectId, IndexId, particionid, allocunitid (tipo LOB duomenys). Ne eilutės duomenų mazgo puslapyje (pageID), lizdas 0, textid nesutampa su jo nuoroda iš puslapio (pageID), lizdas 0. MSG 8961, lygis 16, 1 valstybė, LineNumber Lentelės klaida: ObjectId, IndexId, particionid, allocunitid (tipo LOB duomenys). Ne eilutės duomenų mazgo puslapyje (pageID), lizdas 0, textid nesutampa su jo nuoroda iš puslapio (pageID), lizdas 0. MSG 8929, lygis 16, būsenos 1, LineNumberObjectId, IndexId, particionid, allocunitid (įveskite eilutės duomenis): klaidos rasta ne eilutės duomenyse, kurių ID priklauso pagal RID = (RID) nurodytą duomenų įrašą DBCC rezultatai "TableName". Objekte "TableName" 1 puslapiuose yra 1 eilutės. CHECKTABLE rasta 0 priskyrimo klaidų ir 3 nuoseklumo klaidų lentelėje "TableName" (ObjectId). repair_allow_data_loss yra minimalus klaidos taisymo lygis, nustatytas DBCC CHECKTABLE (Databasvardas. TableName). DBCC vykdymas užbaigtas. Jei "DBCC" išspausdinto klaidų pranešimo, kreipkitės į sistemos administratorių.

Sprendimas

Ši problema išspręsta SQL serverio kaupiamajame naujinime:

Kaupiamasis naujinimas 5 SQL serverio 2016 RTM

Kaupiamasis naujinimas 2 SQL serverio 2016 SP1

Kaupiamasis naujinimas 4 SQL serverio 2014 SP2

Kaupiamasis naujinimas 11 SQL serverio 2014 SP1

Kaupiamasis naujinimas 7, skirtas "SQL Server" 2012 3 pakeitimų paketui

Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius kaupiamuosius SQL serverio naujinimus:

Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2016"

Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2014"

Naujausias Kaupiamasis naujinimas, skirtas "SQL Server" 2012 SP3

Sprendimas

Norėdami išspręsti šią problemą, pakeitę duomenų tipą, nustatykite, kad Didžiosios reikšmių tipai nebūtų keičiami į 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" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.

Nuorodos

Sužinokite apie terminologiją "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.