KB4046745 – LØSNING: UPDATE-setningen mislykkes uten bakgrunn når du refererer til en ikke-eksisterende partisjonsfunksjon i WHERE-setningen i SQL Server 2014, 2016 eller 2017

Gjelder 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

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.