FIX: violare acces atunci când executați o procedură stocată care utilizează un cursor pe o variabilă de tabel în SQL Server

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 3138930
Simptome
Să presupunem că ați creat o procedură stocată care utilizează un cursor pe o variabilă de tabel în Microsoft SQL Server 2012 sau SQL Server 2014. În plus, procedura stocată actualizează tabelul utilizând o instrucțiuneUnde curentă de împreună cu cursorul.

De exemplu, de procedură stocată poate semăna cu următoarea:
CREATE PROCEDURE dbo.usp_TestSP AS  BEGIN  DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL)  DECLARE @curInt INT, @newInt INT SET @newInt = 1  DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL  OPEN ccc  FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc  SELECT * FROM @TableVar END 

Când executați de proceduri stocate utilizând sistemul sp_refreshsqlmodule procedura stocată, poate apărea o violare acces, și este posibil să primiți mesaje de eroare care seamănă cu următorul:
MSG 596, nivel 21, stare 1Cannot continua executarea deoarece sesiunea este în starea de suprimare. MSG 0, 20 nivel, stare 0A severe eroare comanda curentă. Rezultatele, dacă este cazul, ar trebui să fie eliminate.

În această situație, erori care seamănă cu următoarele, de asemenea, sunt scrise în jurnalele de eroare SQL Server:
data time.730 spid51 SqlDumpExceptionHandler: 51 procesul generat fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server este încheiat acest proces.
date time.730 spid51 * *******************************************************************************
data time.730 spid51 *
data time.730 spid51 * începe STACK DUMP:
data time.730 spid51 * data ora spid 51
data time.730 spid51 *
data time.730 spid51 *
data time.730 spid51 * adresa excepției = 00007FFC270236D5 Module(sqllang+00000000005036D5)
data time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
data time.730 spid51 * violare acces a apărut 0000006F00620074 adresă de citire
data time.730 spid51 * intrare tampon 136 octeți -
data time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP]'
data time.730 spid51 *
data time.730 spid51 *

Rezoluţie

Informații despre actualizarea cumulativă

Această problemă este rezolvată în următoarele actualizări:
Recomandare: Instalați ultimul actualizarea cumulativă pentru SQL Server

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Verifica cele mai recente actualizări cumulative pentru SQL Server:
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".
Referinţe
Aflați despre terminologia utilizată de Microsoft pentru a descrie actualizările software.

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 3138930 - Ultima examinare: 05/31/2016 09:25:00 - Revizie: 2.0

Microsoft SQL Server 2012 Service Pack 3, Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3138930 KbMtro
Feedback