Simptomi
Tip podataka kolone u tabeli baze podataka menjate iz ntext u nvarchar(max) na serveru koji radi pod sistemom Microsoft SQL Server 2012, 2014 ili 2016. Kada ažurirate tabelu dodavanjem više od 4.000 zapisa, DBCC CHECKDB može da prijavi greške koje su slične sledećim:
Msg 8961, Nivo 16, Država 1, Broj linija Greška tabele: ID objekta, IDindeksa , ID particije, allocUnitID (ukucaj LOB podatke). Vansudski kredom nastranici ( ID stranice), slot 0, ID teksta se ne podudara sa njegovom referencom sa stranice (ID stranice), slot 0. Msg 8961, Nivo 16, Država 1, Broj linija Greška tabele: ID objekta, IDindeksa , ID particije, allocUnitID (ukucaj LOB podatke). Vansudski kredom nastranici ( ID stranice), slot 0, ID teksta se ne podudara sa njegovom referencom sa stranice (ID stranice), slot 0. Msg 8929, Level 16, State 1, LineNumberObjectID, indexID, partitionID, allocUnitID (type In-row data): Errors found in off-row data with ID owned by data record identified by RID = (RID) DBCC rezultati za 'Ime tabele'. Postoji 1 red na 1 stranici za objekat "Ime tabele". CHECKTABLE je pronašao 0 grešaka u dodeli i 3 greške u doslednosti u tabeli 'TableName' (ObjectID). repair_allow_data_loss je minimalni nivo opravke za greške koje je pronašao DBCC CHECKTABLE (DatabaseName.TableName). Izvršavanje DBCC-a je dovršeno. Ako je DBCC odštampao poruke o greškama, obratite se administratoru sistema.
Rešenje
Ovaj problem je rešen u sledećim kumulativnim ispravkama za SQL Server:
Kumulativna ispravka 5 za SQL Server 2016 RTM
Kumulativna ispravka 2 za SQL Server 2016 SP1
Kumulativna ispravka 4 za SQL Server 2014 SP2
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2016
Rešenje
Da biste zaobišli ovaj problem nakon što promenite tip podataka, postavite velike tipove vrednosti van opcijereda 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 je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.