OPRAVIŤ: Porušenie prístupu pri spúšťaní uloženej procedúry, ktoré používa kurzor premenné tabuľky v aplikácii SQL Server

DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 3138930
Príznaky
Predpokladajme, že vytvoríte uloženú procedúru, ktorá používa kurzor v tabuľke premenná Microsoft SQL Server 2012 alebo SQL Server 2014. Okrem toho uloženej procedúry aktualizuje tabuľkuKde aktuálne na vyhlásenie spolu s kurzor.

Napríklad vaše uloženej procedúry môže podobný nasledujúcemu:
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 

Pri vykonávaní vašej uloženej procedúry pomocou systému sp_refreshsqlmodule uložená procedúra, porušenie prístupu sa môže vyskytnúť, a môže sa zobraziť chybové hlásenia, ktoré môžu:
MSG 596, úroveň 21, stav 1Cannot naďalej výkon pretože ukončenia stavu relácie. MSG 0, úroveň 20 stavu 0A závažné chyba v aktuálnom príkaze. Výsledky, prípadne by odstránené.

V takomto prípade chyby, ktoré môžu aj zapisujú do denníka chýb servera SQL Server:
dátum time.730 spid51 SqlDumpExceptionHandler: 51 proces vygeneruje výnimky c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sa ukončí proces.
date time.730 spid51 * *******************************************************************************
dátum time.730 spid51 *
dátum time.730 spid51 * začať výpisu zásobníka:
dátum time.730 spid51 * dátum čas spid 51
dátum time.730 spid51 *
dátum time.730 spid51 *
dátum time.730 spid51 * výnimkou adresa = 00007FFC270236D5 Module(sqllang+00000000005036D5)
dátum time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
dátum time.730 spid51 * porušenie prístupu čítaní adresu 0000006F00620074 sa vyskytla chyba
dátum time.730 spid51 * bajtov medzipamäte 136 vstup -
dátum time.730 spid51 * sp_refreshsqlmodule vykonanie N "[dbo]. [usp_TestSP] "
dátum time.730 spid51 *
dátum time.730 spid51 *

Riešenie

Kumulatívna aktualizácia informácií

Tento problém je opravený v nasledujúce aktualizácie:
Odporúčanie: Nainštalujte najnovšie kumulatívnej aktualizácie pre server SQL Server

Každý nový Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite sa na najnovšie kumulatívnej aktualizácie pre server SQL Server:
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.
Odkazy
Ďalšie informácie o Terminológia ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 3138930 – Posledná kontrola: 05/31/2016 08:58:00 – Revízia: 3.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 KbMtsk
Pripomienky