Pazīmes
Pieņemsim, ka jums ir priekšraksts UPDATE, kurā ir atsauce uz neesošu nodalījuma funkciju, izmantojot atslēgvārdu $PARTITION Microsoft SQL Server 2014, 2016 vai 2017. Piemērs:
Piezīme
UPDATE TableName SET ColumnName='xyz' KUR $PARTITION. NonExistingPartitionFunction(Kolonnas_nosaukums) = 1
Šādā gadījumā SQL Server neveic atjaunināšanu vai neatgriež kļūdas ziņojumu, lai norādītu, ka objekts NonExistingPartitionFunction nepastāv. Tomēr no lietotāja viedokļa šķiet, ka UPDATE paziņojums ir veiksmīgi izpildīts, bet patiesībā tas neizdevās.
Iemesls
Izpildot paketi, SQL Server var izmantot pagarinājuma nosaukuma izšķiršanu (DNR). Šajā procesā SQL Server uzreiz nerada kļūdu, kad tas saskaras ar neeksistējošu objektu, un tas paredz, ka objektu izveidos modulis vai pakete pirms tā paziņojuma izpildes, kas atsaucas uz šo objektu. Nodalījuma funkcijām SQL Server nepareizi apstrādā DNR.
Papildinformācija
Papildinformāciju par DNR skatiet sadaļā Pagarinājuma nosaukuma izšķirtspēja.
Risinājums
Šī problēma ir novērsta šādos SQL Server kumulatīvajos atjauninājumos:
8. kumulatīvais atjauninājums operētājsistēmai SQL Server 2016 SP1
SQL Server 2017 4. kumulatīvais atjauninājums
9. kumulatīvais atjauninājums operētājsistēmai SQL Server 2014 SP2
Par SQL Server kumulatīvajiem atjauninājumiem:
Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos SQL Server kumulatīvos atjauninājumus:
Jaunākais kumulatīvais atjauninājums SQL Server 2016
Jaunākais kumulatīvais atjauninājums SQL Server 2017
Jaunākais kumulatīvais atjauninājums SQL Server 2014
Statuss
Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.