Gejala
Anda mengubah tipe data kolom dalam tabel database dari ntext menjadi nvarchar (Max) di server yang menjalankan Microsoft SQL Server 2012, 2014 atau 2016. Ketika Anda memperbarui tabel dengan menambahkan lebih dari 4.000 catatan, DBCC CHECKDB mungkin melaporkan kesalahan yang menyerupai yang berikut ini:
MSG 8961, tingkat 16, negara bagian 1, Linenumber Kesalahan tabel: ObjectID, indexid, partitionid, allocunitid (tipe LOB data). Simpul data dari baris di halaman (pageid), Slot 0, textid tidak cocok dengan referensi dari halaman (pageid), Slot 0. MSG 8961, tingkat 16, negara bagian 1, Linenumber Kesalahan tabel: ObjectID, indexid, partitionid, allocunitid (tipe LOB data). Simpul data dari baris di halaman (pageid), Slot 0, textid tidak cocok dengan referensi dari halaman (pageid), Slot 0. MSG 8929, tingkat 16, negara bagian 1 , LinenumberObjectID, indexid, partitionid, allocunitid (ketikkan data dalam baris): kesalahan yang ditemukan dalam data dari baris dengan id yang dimiliki oleh catatan data yang diidentifikasi oleh rid = (rid) DBCC hasil untuk 'NamaTabel'. Terdapat 1 baris dalam 1 halaman untuk objek "NamaTabel". CHECKTABLE menemukan 0 kesalahan alokasi dan 3 kesalahan konsistensi dalam tabel 'NamaTabel' (ObjectID). repair_allow_data_loss adalah tingkat perbaikan minimum untuk kesalahan yang ditemukan oleh DBCC CHECKTABLE (databasename. TableName). Eksekusi DBCC diselesaikan. Jika DBCC mencetak pesan kesalahan, hubungi administrator sistem Anda.
Pemecahan Masalah
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut ini untuk SQL Server:
Pembaruan kumulatif 5 untuk SQL Server 2016 RTM
Pembaruan kumulatif 2 untuk SQL Server 2016 SP1
Pembaruan kumulatif 4 untuk SQL Server 2014 SP2
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua perbaikan hotfix dan keamanan yang disertakan dalam pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Pembaruan kumulatif terbaru untuk SQL Server 2016
Penyelesaian Masalah
Untuk mengatasi masalah ini setelah Anda mengubah tipe data, atur opsi nilai tipe besar dari baris ke 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 telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan oleh Microsoft untuk menjelaskan pembaruan perangkat lunak.