Simptomi
Vrstu podataka stupca u tablici baze podataka možete promijeniti iz servisa ntext na nvarchar (Max) na poslužitelju na kojem je instaliran Microsoft SQL Server 2012, 2014 ili 2016. Kada tablicu ažurirate dodavanjem više od 4.000 zapisa, DBCC CHECKDB može prijaviti pogreške koje nalikuju sljedećem:
MSG 8961, razina 16, State 1, Linenumber Pogreška tablice: objektivno, indexid, partitiiid, allocunitid (vrsta lob podataka). Podatkovni čvor izvan retka na stranici (pageid), utor 0, textd ne odgovara svojoj referenci od stranice (pageid), utor 0. MSG 8961, razina 16, State 1, Linenumber Pogreška tablice: objektivno, indexid, partitiiid, allocunitid (vrsta lob podataka). Podatkovni čvor izvan retka na stranici (pageid), utor 0, textd ne odgovara svojoj referenci od stranice (pageid), utor 0. MSG 8929, razina 16, State 1, Linenumberobjektid, indexid, partitiiid, allocunitid (vrsta podataka u retku): pogreške pronađene u podacima izvan retka s ID -om u vlasništvu podataka koji je identificiran putem programa Rid = (Rid) DBCC rezultati za 'tablename'. Postoji 1 redak na 1 stranici za objekt "tablename". Tablica za provjeru pronađeno je 0 pogrešaka prilikom alokacije i 3 pogreške dosljednosti u tablici "tablename" (objektid). repair_allow_data_loss je minimalna razina popravka pogrešaka koja je pronađena putem DBCC CHECKTABLE (DATABASENAME. TableName). Dovršeno je izvršavanje DBCC. Ako je DBCC ispisana poruka o pogrešci, obratite se administratoru sustava.
Rješenje
Taj je problem riješen u sljedećim kumulativnim ažuriranjima za SQL Server:
Kumulativno ažuriranje 5 za SQL Server 2016 RTM
Kumulativno ažuriranje 2 za SQL Server 2016 SP1
Kumulativno ažuriranje 4 za SQL Server 2014 SP2
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su uvršteni u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Najnovije Kumulativno ažuriranje za SQL Server 2016
Zaobilazno rješenje
Da biste zaobišli taj problem nakon promjene vrste podataka, postavite mogućnost velike vrste vrijednosti izvan retka na 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 je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ažuriranja.