KB4055758 - DÜZELTME: SQL Server'de CHAR ve BINARY verilerinin sonunda sondaki boşlukları döndürmek için tutarsız davranış

Uygulandığı Öğe
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Belirtiler

Üzerinde bir veya daha fazla dizin bulunan bir Microsoft SQL Server SQL Server tablonuz olduğunu varsayalım. Tabloda sorgu yaptığınızda, SQL ServerSQL Server, CHAR ve BINARY sütunları için tutarsız veri doldurma işlemi gerçekleştirebilir. CHAR ve BINARY veri sütunlarının sonunda sondaki boşlukları döndürmeye yönelik tutarsız davranış aşağıdaki koşullara bağlıdır:

  • SQL Server tabloda sütunların ne zaman oluşturulduğunu ANSI_PADDING ayarları.
  • Sütunlarda tablo taraması veya dizin araması yapma kararı.

Neden

Bazı senaryolarda, SQL Server daha hızlı veri teslimi için birçok işlemi atlamasına olanak tanıyan bir iyileştirme gerçekleştirebilir. Sorun SQL Server iyileştirmenin yukarıdaki senaryoya uygulanamayacağını algılamaması nedeniyle oluşur.

Daha Fazla Bilgi

SQL Server'in bu davranışı, şu makalede belgelenen davranışla uyumsuzdur: Char ve Varchar verilerini kullanma.

Not

ANSI_PADDING NULL sütunu oluşturulduğunda AÇIK ise char NOT NULL sütunuyla aynı şekilde davranır: değerler sütunun boyutuna göre sağa yerleştirilir. Bir char NULL sütunu oluşturulduğunda ANSI_PADDING KAPALI ise, ANSI_PADDING KAPALI olarak ayarlanmış bir varchar sütunu gibi davranır: sondaki boşluklar kesilir.

Çözüm

Bu sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:

Cumulative Update 2 for SQL ServerSQL Server 2017

Cumulative Update 9 for SQL ServerSQL Server 2016

SQL Server 2016 SP1 için Toplu Güncelleştirme 6

Cumulative Update 8 for SQL ServerSQL Server 2014 SP2

SQL Server 2014 SP1 için Toplu Güncelleştirme 7

SQL Server toplu güncelleştirmeleri hakkında:

SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:

En son toplu güncelleştirme SQL ServerSQL Server 2017

SQL Server 2016 için en son toplu güncelleştirme

SQL Server 2014 için en son toplu güncelleştirme

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır

Başvurular

Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.