Příznaky
Předpokládejme, že máte tabulku systému Microsoft SQL Server, na které je postaven jeden nebo více indexů. Při dotazování na tabulku může SQL Server provádět nekonzistentní odsazení dat pro sloupce CHAR a BINARY. Nekonzistentní chování při vracení koncových prázdných hodnot na konci sloupců dat ZNAK a BINARY závisí na následujících podmínkách:
- Nastavení ANSI_PADDING při vytváření sloupců v tabulce SQL Server.
- Rozhodnutí provést u sloupců buď prohledávání tabulek, nebo vyhledávání indexů.
Příčina
V určitých scénářích může SQL Server provést optimalizaci, která mu umožní obejít mnoho operací a zajistit tak rychlejší doručování dat. K tomuto problému dochází, protože SQL Server nerozpozná, že ve výše uvedeném scénáři nejde použít optimalizaci.
Další informace
Toto chování SQL Server není v souladu s chováním popsaným v následujícím článku: Použití dat Char a Varchar.
Poznámka
Pokud je ANSI_PADDING ZAPNUTO, když je vytvořen sloupec znak s hodnotou NULL, chová se stejně jako sloupec znak NOT NULL: hodnoty jsou odsazeny vpravo podle velikosti sloupce. Pokud je ANSI_PADDING při vytvoření sloupce znak s hodnotou NULL vypnutý, chová se jako sloupec varchar s ANSI_PADDING nastaveným na OFF: koncové prázdné buňky jsou zkráceny.
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 2 pro SQL Server 2017
Kumulativní aktualizace 9 pro SQL Server 2016
Kumulativní aktualizace 6 pro SQL Server 2016 SP1
Kumulativní aktualizace 8 pro SQL Server 2014 SP2
Kumulativní aktualizace 7 pro SQL Server 2014 SP1
Informace o kumulativních aktualizacích pro SQL Server:
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější kumulativní aktualizace pro SQL Server 2016
Nejnovější kumulativní aktualizace pro SQL Server 2014
Stav
Společnost Microsoft potvrdila, že se jedná o problém v produktech Microsoftu, které jsou uvedeny v sekci Informace v tomto článku jsou určeny pro produkt v tomto článku
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.