Belirtiler
Microsoft SQL Server 2012, 2014 veya 2016 çalıştıran bir sunucuda, bir veritabanı tablosundaki bir sütunun veri türünü ntext 'den nvarchar (max) olarak değiştirirsiniz. 4.000 ' den fazla kayıt ekleyerek tabloyu güncelleştirdiğinizde, DBCC CHECKDB aşağıdakine benzer hatalar bildirebilir:
İleti 8961, düzey 16, durum 1, LineNumber Tablo hatası: ObjectID, IndexID, PartitionID, allocunitid (LOB verileri yazın). Sayfa (PageId), yuva 0, textid sayfasından satır dışı veri düğümü, sayfa (PageId), yuva 0 ' dır. İleti 8961, düzey 16, durum 1, LineNumber Tablo hatası: ObjectID, IndexID, PartitionID, allocunitid (LOB verileri yazın). Sayfa (PageId), yuva 0, textid sayfasından satır dışı veri düğümü, sayfa (PageId), yuva 0 ' dır. İleti 8929, düzey 16, durum 1, LineNumberObjectID, IndexID, PartitionID, ALLOCUNıNITIAL( tür satır verileri): RID = (Rid) tarafından tanımlanan veri kaydının sahibi olduğu satır içi verilerde bulunan hatalar 'TableName' için DBCC sonuçları. "TableName" nesnesi için 1 sayfada 1 satır vardır. CHECKTABLE, 'TableName' tablosunda (ObjectID) 0 ayırma hatası ve 3 tutarlılık hatası buldu. repair_allow_data_loss, DBCC CHECKTABLE (DatabaseName. TableName) tarafından bulunan hataların onarım düzeyidir. DBCC yürütme tamamlandı. DBCC hata iletilerini yazdırdıysa sistem yöneticinize başvurun.
Çözüm
Bu sorun, SQL Server için aşağıdaki toplu güncelleştirmelerde giderilmiştir:
SQL Server 2016 RTM için toplu güncelleştirme 5
SQL Server 2016 SP1 için toplu güncelleştirme 2
SQL Server 2014 SP2 için toplu güncelleştirme 4
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmede bulunan tüm düzeltmeleri ve güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
En son SQL Server 2016 toplu güncelleştirmesi
Geçici Çözüm
Veri türünü değiştirdikten sonra bu soruna geçici bir çözüm için, satır dışında büyük değer türlerini1olarak ayarlayın.
ALTER TABLE TableName ALTER COLUMN COLUMN_NAME nvarchar(max) NOT NULL
go
exec sp_tableoption 'TableName', 'large value types out of row', '1'
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Başvurular
Microsoft 'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında bilgi edinin.