KB4518364 — LABOJUMS: Access pārkāpums rodas, ja izpildāt vaicājumus, kuros ir iekļauta funkcija PIVOT vai UNPIVOT versijā SQL Server 2016, 2017 un 2019

Attiecas uz
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) SQL Server 2019 on Windows

Pazīmes

Pieņemsim, ka izmantojat 8. kumulatīvo atjauninājumu sistēmai SQL Server 2016 SP2, SQL Server 2017 vai 2019. Kad mēģināt apkopot informāciju par izpildāmo vaicājumu, piemēram, metadatus (vaicājuma atgriezto kolonnu tipus), parametru tipus vai aptuveno izpildes plānu, iespējams, ievērosit, ka piekļuves pārkāpums (AV) rodas, ja vaicājumā ir rakursa vai UNPIVOT operatori. Šādas informācijas vākšanas piemēri ietver, bet neaprobežojas ar šādiem:

  • Izsauciet sys.sp_describe_first_result_set , lai iegūtu vaicājuma atgrieztos kolonnu tipus.
  • Zvaniet sys.sp_describe_undeclared_parameters , lai iegūtu parametru tipus.
  • Zvaniet SET SHOWPLAN (vai izmantojot Microsoft SQL Server Management Studio), lai iegūtu aptuvenu izpildes plānu.

Turklāt lokālajā instancē tiek ģenerēts izmetes fails, kas ir līdzīgs šim:

Ziņojums 596, 21. līmenis, 1. stāvoklis, rindiņas numurs

Nevar turpināt izpildi, jo sesija ir novākšanas stāvoklī.

Ziņojums 0, 20. līmenis, stāvoklis 0, rindas numurs

Pašreizējā komandā radās nopietna kļūda. Rezultāti, ja tādi ir, ir jāatmet.
      

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Risinājums

Šī problēma ir novērsta šādos SQL Server kumulatīvajos atjauninājumos:

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:

Atsauces

Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.