KB4046745 - FIX: UPDATE-lause nurjub vaikselt, kui viitate where-klausli olematu partitsioonifunktsiooni SQL Server 2014, 2016 või 2017

Rakenduskoht
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)

Sümptomid

Oletagem, et teil on UPDATE-lause, mis viitab olematu partitsiooni funktsiooni kasutades märksõna $PARTITION Microsoft SQL Server 2014, 2016 või 2017. Näiteks

Märkus.

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

Sellises olukorras SQL Server ei teosta värskendust või tagastab tõrketeate, mis näitab, et NonExistingPartitionFunction objekti pole olemas. Kasutaja seisukohast tundub siiski, et UPDATE-lause on edukalt käivitatud, kuid tegelikult see nurjus.

Põhjus

Paketi käivitamisel võib SQL Server teha edasilükatud nime eraldusvõime (DNR). Selles protsessis ei põhjusta SQL Server kohe tõrget, kui esineb olematu objekt, ja eeldab, et objekt luuakse mooduli või paketiga enne sellele objektile viitava lause käivitamist. Sektsioonifunktsioonide puhul ei käitle SQL Server DNR-i õigesti.

Veel teavet

DNR-i kohta leiate lisateavet teemast Viitnime eraldusvõime.

Lahendus

See probleem on lahendatud järgmistes SQL Server koondvärskendustes.

SQL Server 2016 SP1 koondvärskendus 8

SQL Server 2017 koondvärskendus 4

SQL Server 2014 SP2 koondvärskendus 9

Teave SQL Server koondvärskenduste kohta.

Iga uus koondvärskendus SQL Server sisaldab kõiki kiirparandusi ja kõiki turbeparandusi, mis olid kaasatud eelmise koondvärskenduse. Vaadake uusimaid SQL Server koondvärskendusi.

Uusim koondvärskendus SQL Server 2016 jaoks

Uusim koondvärskendus SQL Server 2017 jaoks

Uusim koondvärskendus SQL Server 2014 jaoks

Olek

Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.

Viited

Lisateave Microsofti tarkvaravärskenduste terminoloogia kohta.