Symptomer
Anta at du har en UPDATE-setning som refererer til en ikke-eksisterende partisjonsfunksjon ved hjelp av nøkkelordet $PARTITION i Microsoft SQL Server 2014, 2016 eller 2017. Eksempler:
Obs!
UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1
I denne situasjonen utfører ikke SQL Server en oppdatering, eller returnerer en feilmelding for å angi at NonExistingPartitionFunction-objektet ikke finnes. Fra brukerens perspektiv ser det imidlertid ut til at UPDATE-setningen ble utført uten problemer, men at den faktisk mislyktes.
Årsak
Når du kjører en gruppe, kan SQL Server utføre den utsatte navneløsingen (DNR). I denne prosessen produserer ikke SQL Server umiddelbart en feil når den støter på et ikke-eksisterende objekt, og den forventer at objektet vil bli opprettet av modulen eller gruppen før kjøringen av setningen som refererer til dette objektet. For partisjonsfunksjoner håndterer ikke SQL Server DNR på riktig måte.
Mer informasjon
Hvis du vil ha mer informasjon om DNR, kan du se Utsatt navneløsing.
Oppløsning
Dette problemet er løst i følgende kumulative oppdateringer for SQL Server:
Kumulativ oppdatering 8 for SQL Server 2016 SP1
Kumulativ oppdatering 4 for SQL Server 2017
Kumulativ oppdatering 9 for SQL Server 2014 SP2
Om kumulative oppdateringer for SQL Server:
Hver nye kumulative oppdatering for SQL Server inneholder alle hurtigreparasjoner og alle sikkerhetsrettinger som fulgte med den forrige kumulative oppdateringen. Ta en titt på de nyeste kumulative oppdateringene for SQL Server:
Den nyeste kumulative oppdateringen for SQL Server 2016
Den nyeste kumulative oppdateringen for SQL Server 2017
Den nyeste kumulative oppdateringen for SQL Server 2014
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen «Gjelder for».
Kilder
Finn ut mer om terminologien som Microsoft bruker til å beskrive programvareoppdateringer.