KB4054398 - DÜZELTME: SQL Server 2014, 2016 ve 2017'de "HARMANLAMA BULUNMADIĞINDAN dolayı geçersiz karşılaştırma" perakende onaylaması gerçekleşir

Uygulandığı Öğe
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 Standard on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2016 Service Pack 1 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)

Belirtiler

Microsoft SQL ServerSQL Server 2014, 2016 ve 2017'de CHAR veya VARCHAR sütunlarında birleştirme gibi bazı dize işlemleri gerçekleştiren bir sorgunuz olduğunu varsayalım. Aşağıdaki senaryoyu ele alalım:

  • Sütunları, kendilerine atanmış farklı harmanlamalarla birleştirirsiniz.
  • Bu harmanlamalar birbiriyle uyumsuzdur. Örneğin, Latin1_General_CI_AI olarak harmanlanmış bir sütunu Latin1_General_BIN ile birleştirmeye çalışıyor olabilirsiniz.
  • Birleştirmenin nihai sonucu, harmanlama çakışmasının çözümü açısından belirli bir harmanlamaya ("database_default" dahil) atanır.

Bu senaryoda, SQL Serveröğesini SQL Server "Harmanlama Yok nedeniyle geçersiz karşılaştırma" ifadesini içeren bir perakende onaylama işlemi döndürebilir ve aşağıdakine benzer bazı hata iletileri alabilirsiniz:

Not

  • Konum: typinfo.cpp:LineNumber
    İfade: false
    SPID: SPID
    İşlem Kimliği: İşlemKimliği
    Açıklama: HARMANLAMA BULUNMAMASI nedeniyle geçersiz karşılaştırma.

  • Msg 3624, Level 20, State 1, Line LineNumber
    Sistem onaylama denetimi başarısız oldu. Ayrıntılar için SQL Server hata günlüğünü kontrol edin. Onaylama işlemi hatasına genellikle bir yazılım hatası veya veri bozulması neden olur. Veritabanı bozukluklarını denetlemek için DBCC CHECKDB aracını çalıştırmayı göz önünde bulundurun. Kurulum sırasında Microsoft'a döküm göndermeyi kabul ettiyseniz Microsoft'a mini bir döküm gönderilir. Microsoft'tan en son Hizmet Paketi veya Teknik Destek Düzeltmesi ile bir güncelleştirme edinilebilir.

  • Msg 596, Level 21, State 1, Line LineNumber
    Oturum sonlandırma durumunda olduğundan yürütmeye devam edilemiyor.

  • Msg 0, Level 20, State 0, Line LineNumber

  • Geçerli komutta önemli bir hata oluştu.  Varsa, sonuçlar atılmalıdır.

Neden

Sorgu optimizasyonu aşamasında, SQL ServerSQL Server, sorgulamanın çeşitli aşamalarının ara sonuçlarında, örneğin birleştirmede kardinaliteleri hesaplamaya çalışır. Harmanlama çakışması çözümlemesi en sonda gerçekleştiğinden, sorgu iyileştiricisi bunun farkında olmayabilir ve çakışmalı harmanlama içeren bir girişte birleştirme kardinalitesinin hesaplamasını gerçekleştirmeye çalışabilir.

Çözüm

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

SQL Server 2016 SP1 için toplu güncelleştirme 8

SQL Server 2017 için Toplu Güncelleştirme 4

SQL Server 2014 SP2 için Toplu Güncelleştirme 9

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:

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

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

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.