Příznaky
Předpokládejme, že máte příkaz UPDATE, který odkazuje na neexistující funkci oddílu pomocí klíčového slova $PARTITION v Microsoft SQL Server 2014, 2016 nebo 2017. Příklad:
Poznámka
UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1
V této situaci SQL Server neprovede aktualizaci nebo nevrátí chybovou zprávu informující, že objekt NonExistingPartitionFunction neexistuje. Z pohledu uživatele se však zdá, že příkaz UPDATE je proveden úspěšně, ale ve skutečnosti se nezdařil.
Příčina
Když spustíte dávku, může SQL Server provést odložený překlad názvů (DNR). V tomto procesu SQL Server okamžitě nevytvoří chybu, když narazí na neexistující objekt, ale očekává, že objekt bude vytvořen modulem nebo dávkou před provedením příkazu, který odkazuje na tento objekt. U funkcí oddílů nezpracovává SQL Server DNR správně.
Další informace
Další informace o DNR naleznete v tématu Překlad pozdržených názvů.
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 8 pro SQL Server 2016 SP1
Kumulativní aktualizace 4 pro SQL Server 2017
Kumulativní aktualizace 9 pro SQL Server 2014 SP2
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 2016
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější kumulativní aktualizace pro SQL Server 2014
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.