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.