KB4046745 – OPRAVA: Příkaz UPDATE se nezdaří bez upozornění, pokud v klauzuli WHERE v SQL Server 2014, 2016 nebo 2017 odkazujete na neexistující funkci oddílu.

Platí pro
SQL Server 2014 Service Pack 2 - duplicate (do not use) 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 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise 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)

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.