Príznaky
Predpokladajme, že máte tabuľku Microsoft SQL Server, na ktorej je vytvorený jeden alebo viacero indexov. Pri dotaze na tabuľku môže SQL Server vykonávať nekonzistentné vyplnenie údajov pre znaky CHAR a binárne stĺpce. Nekonzistentné správanie pri vrátení koncových prázdnych hodnôt na konci stĺpca CHAR a binárne údaje závisí od týchto podmienok:
-
Nastavenia ANSI_PADDING pri vytváraní stĺpcov v tabuľke SQL servera.
-
Rozhodnutie o tom, či sa v stĺpcoch vykoná kontrola tabuľky alebo vyhľadávanie indexu.
Príčina
V niektorých scenároch môže SQL Server vykonávať optimalizáciu, ktorá mu umožňuje obísť veľa operácií na rýchlejšiu dodanie údajov. Problém sa vyskytuje, pretože SQL Server nerozpozná, že optimalizácia nie je možné použiť pre vyššie uvedené scenáre.
Ďalšie informácie
Toto správanie SQL servera nie je v súlade s správaním, ktoré je zdokumentované v nasledujúcom článku: použitie znakov char a VARCHAR.
Ak je ANSI_PADDING ZAPNUTá, keď sa vytvorí stĺpec char NULL, chová sa rovnako ako stĺpec char NOT NULL: hodnoty sú napravo vypchaté na veľkosť stĺpca. Ak je ANSI_PADDING VYPNUTá, keď sa vytvorí stĺpec char NULL, správa sa ako stĺpec varchar s ANSI_PADDING vyradené: koncové prázdne bunky sa skrátia.
Riešenie
Tento problém je vyriešený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:
Kumulatívna aktualizácia 2 pre SQL Server 2017
Kumulatívna aktualizácia 9 pre SQL Server 2016
Kumulatívna aktualizácia 6 pre SQL Server 2016 SP1
Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Posledná Kumulatívna aktualizácia pre SQL Server 2017
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti vzťahuje sa na.
Odkazy
Oboznámte sa s terminológiou, ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.