RakenduskohtSQL 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)

Sümptomid

Oletagem, et teil on päring, mis sooritab teatud stringi toiminguid nt ühendamise, Microsoft SQL Server 2014, 2016 ja 2017 veergudes CHAR või MUUTUVPIKKUSEGA TÄRKANDMED. Arvestage järgmise stsenaariumiga.

  • Saate CONCATENATE veerge, mille jaoks on määratud erinevad kogumid.

  • Need kogumid on üksteisega kokkusobimatud. Näiteks proovite CONCATENATE veergu, mis on võrreldud Latin1_General_CI_AI Latin1_General_BIN.

  • Ühendamise lõpptulemus määratakse kogumi konflikti lahendamise teemana kindlale kogumile (sh "database_default").

Selle stsenaariumi korral võib SQL Server tagastada jaemüügi kinnituse, et osariigid "Kehtetu võrdlus ilma KOGUMIta" ja võidakse kuvada mõni tõrketeade, mis näeb välja järgmine:

Asukoht: typinfo. cpp:LineNumber Avaldis: FALSE SPID: spid Protsessi ID: ProcessID Kirjeldus: sobimatu võrdluse tõttu pole KOGUMIt.

MSG 3624, tase 20, olek 1, rea LineNumber Süsteemi kinnituse tšekk on nurjunud. Vaadake üksikasju SQL serveri tõrkelogi. Tavaliselt on kinnituse rike tingitud tarkvara veast või andmete korruptsioonist. Andmebaasi korruptsiooni kontrollimiseks kaaluge DBCC CHECKDB käitamist. Kui olete nõustunud saatma Microsoftile häälestamise ajal prügilad, saadetakse Microsoftile väike dumping. Värskendus võib olla saadaval Microsoftis uusimas hoolduspaketis või tehnilise toe käigultparanduses.

MSG 596, tase 21, olek 1, rea LineNumber Täitmist ei saa jätkata, kuna seanss on olekus Kill.

MSG 0, tase 20, olek 0, rea LineNumber

Praegusel käsul ilmnes tõsine tõrge.  Tulemid, kui need on olemas, tuleks hävitada.

Põhjus

Päringu optimeerimise etapil proovib SQL Server arvutada päringu eri etappide vahetulemid (nt ühendamise). Kuna kogumi konfliktide lahendamine toimub väga lõpus, ei pruugi päringu optimeerija sellest teada saada ja proovib teha ühendamise-i arvutusi, mis on vastuolus kogumiga.

Lahendus

See probleem on lahendatud SQL serveri järgmisi kumulatiivseid värskendusi.

       Kumulatiivne Update 8 SQL Server 2016 SP1 jaoks  

       Kumulatiivne värskendus 4 SQL Server 2017

       Kumulatiivne Update 9 SQL Server 2014 SP2 jaoks

Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.

Uusim SQL Server 2016 koondvärskenduses

Uusim SQL Server 2017 koondvärskenduses

Uusim SQL Server 2014 koondvärskenduses

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Viited

Siit leiate teavet selle kohta, mida Microsoftkasutab tarkvaravärskenduste kirjeldamiseks.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.