KB4046745 – OPRAVA: Príkaz UPDATE zlyhá bez upozornenia, keď odkazujete na neexistujúcu funkciu oddielu v klauzule WHERE v SQL Server 2014, 2016 alebo 2017

Vzťahuje sa na
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)

Príznaky

Predpokladajme, že máte príkaz UPDATE, ktorý odkazuje na neexistujúcu funkciu oddielu pomocou kľúčového slova $PARTITION v Microsoft SQL Server 2014, 2016 alebo 2017. Príklad:

Poznámka

UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1

V tomto prípade SQL Server nevykoná aktualizáciu ani nevráti chybové hlásenie, ktoré označuje, že objekt NonExistingPartitionFunction neexistuje. Z pohľadu používateľa sa však zdá, že príkaz UPDATE bol vykonaný úspešne, ale v skutočnosti zlyhal.

Príčina

Keď spustíte dávku, SQL Server môže vykonať oneskorené rozlíšenie názvov (DNR). V tomto procese SQL Server nevytvorí chybu okamžite, keď narazí na neexistujúci objekt, a očakáva, že objekt bude vytvorený modulom alebo dávkou pred vykonaním príkazu, ktorý odkazuje na tento objekt. Pre funkcie oddielov SQL Server nespracováva DNR správne.

Ďalšie informácie

Ďalšie informácie o DNR nájdete v téme Rozlišovanie oneskorených názvov.

Riešenie

Tento problém je opravený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:

Kumulatívna aktualizácia 8 pre SQL Server 2016 SP1

Kumulatívna aktualizácia 4 pre SQL Server 2017

Kumulatívna aktualizácia 9 pre SQL Server 2014 SP2

Informácie o kumulatívnych aktualizáciách pre SQL Server:

Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:

Najnovšia kumulatívna aktualizácia pre SQL Server 2016

Najnovšia kumulatívna aktualizácia pre SQL Server 2017

Najnovšia kumulatívna aktualizácia pre SQL Server 2014

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

Získajte informácie o terminológii, ktorú Microsoft používa na popis aktualizácií softvéru.