KB4046745 – RETTELSE: UPDATE-sætningen mislykkes fuldstændigt, når du refererer til en ikke-eksisterende partitionsfunktion i WHERE-delsætningen i SQL Server 2014, 2016 eller 2017

Gælder for
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)

Symptomer

Antag, at du har en UPDATE-sætning, der refererer til en ikke-eksisterende partitionsfunktion ved hjælp af nøgleordet $PARTITION i Microsoft SQL Server 2014, 2016 eller 2017. For eksempel

Bemærk

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

I dette tilfælde udfører SQL Server ikke en opdatering eller returnerer en fejlmeddelelse for at angive, at objektet NonExistingPartitionFunction ikke findes. Men fra brugerens perspektiv ser det ud til, at UPDATE-sætningen blev udført korrekt, men faktisk mislykkedes den.

Årsag

Når du kører en batch, udfører SQL Server muligvis fortolkningen af udskudt navn (DNR). I denne proces opretter SQL Server ikke straks en fejl, når den støder på et ikke-eksisterende objekt, og den forventer, at objektet oprettes af modulet eller batchen før udførelsen af den sætning, der refererer til det pågældende objekt. I forbindelse med partitionsfunktioner håndterer SQL Server ikke DNR korrekt.

Flere oplysninger

Du kan finde flere oplysninger om DNR under Udskudt navneoversættelse.

Løsning

Dette problem er rettet i følgende kumulative opdateringer til SQL Server:

Kumulativ opdatering 8 til SQL Server 2016 SP1

Kumulativ opdatering 4 til SQL Server 2017

Kumulativ opdatering 9 til SQL Server 2014 SP2

Om kumulative opdateringer til SQL Server:

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

Seneste kumulative opdatering til SQL Server 2016

Seneste kumulative opdatering til SQL Server 2017

Seneste kumulative opdatering til SQL Server 2014

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Referencer

Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.