Düzeltme: SQL Server 2005'ten yükseltme, bir veritabanı tablosu başka bir değişken uzunluklu sütun güncelleştirdiğinizde, sütun verileri silinebilir
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 3120595
Microsoft SQL Server 2005'ten yükseltilen veritabanı tablosundaki bir değişken uzunluklu sütun içinde bir değer güncelleştirdiğinizde, aynı satırdaki başka bir değişken uzunluklu sütun içinde veri silinir.
Belirtiler
Microsoft SQL Server 2014 ve Microsoft SQL Server 2012'de bu sorun oluşur. Aşağıdaki senaryo, bir veritabanı için bu sorun getirebilir. Bu listedeki olaylar dizisini temsil eder:
- SQL Server 2005'te bir veritabanı oluşturulur.
- SQL Server 2005 ' te Tablo değiştirme ve sonra bir veya daha fazla değişken uzunluklu sütunları tablo tanımını sonuna bırakın.
- Size benzer bir veri türüne ve bırakılan sütun uzunluğu olan yeni değişken uzunluklu sütunları ekleyin.
- Veritabanı SQL Server 2005'ten SQL Server 2014 ya da SQL Server 2012 yükseltilir.
- Daha sonra başka bir değişken uzunluklu sütun değerini güncelleştirmek ve yeni bir sayfaya taşması güncelleştirilmiş veriler vardır.
Komut dosyasında kullanabilirsiniz. Daha fazla bilgi bölüm aşağıdakileri doğrulamak için:
- Değişken uzunluklu sütunları belirli bir veritabanındaki tüm tabloları mi silmiş
- Olup ek değişken uzunluklu sütunları eşleşen sahip oluşturulmuş kaydırır
Not Bu düzeltme, yalnızca ileri tarihli oluşumlarını sorunu engeller.
Çözüm
Önemli Veritabanı SQL Server 2014 veya SQL Server 2012 için SQL Server 2005'ten yükseltiyorsanız, "Geçici çözüm" bölümüne bakın emin olun.
Bu sorun, ilk olarak SQL Server için toplu güncelleştirme aşağıdaki giderilmiştir:
- 2014 SQL Server için toplu güncelleştirme 13
- SQL Server 2014 Service Pack 1 için toplu güncelleştirme 6
- SQL Server 2012 Service Pack 2 için toplu güncelleştirme 10
- SQL Server 2012 Service Pack 3 için toplu güncelleştirme 2
Öneri: SQL Server 2014 veya SQL Server 2012 için en son toplu güncelleştirmeyi yükleyin.
SQL Server tüm düzeltmeleri içerir ve tüm güvenlik, düzeltmeleri önceki toplu güncelleştirmeye dahil her yeni toplu güncelleştirmeyi yükleyin. SQL Server için en son toplu güncelleştirme denetleyin:
Not En son SQL Server yapıları hakkında daha fazla bilgi için bkz. En son SQL Server hakkında bilgi bulmak nerede oluşturur.
Önemli Veritabanı SQL Server 2014 veya SQL Server 2012 ve UPDATE deyimleri yükseltilen veritabanında çalıştırılacak yapmasına izin vermeden önce SQL Server 2005'ten yükseltme yaparken bu geçici çözümü uygulamak.
Pratik Çözüm
Bir tablodaki sütun bırakın, bu soruna geçici bir çözüm bulmak için Güncelleştir veya satırları silmek için önce aşağıdakilerden birini yaptığınızdan emin olun:
- Kümelenmiş dizin ALTER INDEX (...) kullanarak yeniden oluşturun. YENİDEN
- Öbek ALTER TABLE (...) kullanarak yeniden oluşturun. YENİDEN
Aşağıdaki komut dosyası, belirli bir veritabanındaki tüm tabloları büyük olasılıkla bu sorundan etkilenen sütun sildikten doğrulamak için kullanabilirsiniz.
Daha fazla bilgi
Not Komut dosyası tüm satırları döndürmezse, bu sorun şu anda herhangi bir tabloyu, sisteminizdeki geçerli değildir anlamına gelir.
SELECT DISTINCT OBJECT_NAME(sp.[object_id]) AS TableWithDroppedColsFROM sys.system_internals_partition_columns sipc1 WITH (NOLOCK)INNER JOIN sys.system_internals_partition_columns sipc2 WITH (NOLOCK) ON sipc1.[partition_id] = sipc2.[partition_id] AND sipc1.leaf_offset = sipc2.leaf_offset AND sipc1.leaf_offset < 0 AND sipc1.is_dropped < sipc2.is_droppedINNER JOIN sys.partitions sp WITH (NOLOCK) ON sipc1.[partition_id] = sp.[partition_id];
Önemli Bu komut yalnızca amaç ve bu makalenin kapsamı için kullanılmalıdır.
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Durum
Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır
Özellikler
Makale No: 3120595 - Son İnceleme: 05/31/2016 06:34:00 - Düzeltme: 10.0
Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard
- kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3120595 KbMttr