Příznaky

Předpokládejme, že jste vytvořili uloženou proceduru, která používá kurzor na proměnné tabulky v Microsoft SQL serveru 2012 nebo SQL serveru 2014. Kromě toho uložená procedura aktualizuje tabulku pomocí kurzoru, kde je aktuální příkaz a kurzor. Uložená procedura by mohla vypadat například takto:

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 

Když spustíte uloženou proceduru pomocí uložené procedury sp_refreshsqlmodule systému, může dojít k narušení přístupu a zobrazí se vám chybové zprávy podobné následujícím:

Msg 596, úroveň 21, stav 1Cannot pokračování v provádění, protože relace je ve stavu kill. Msg 0, úroveň 20, v aktuálním příkazu došlo k závažné chybě státu 0A. Případné výsledky se zahodí.

V této situaci se do protokolů chyb SQL serveru zapíší taky chyby, které se podobají následujícím:

Datum a čas 730 spid51 SqlDumpExceptionHandler: proces 51 vygeneroval závažnou výjimku c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] ' datum čas. 730 spid51 * datum a čas 730 spid51 *

Řešení

Informace o kumulativní aktualizaci

Tento problém je opravený v následujících aktualizacích:

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Odkazy

Informace o terminologii používané společností Microsoft k popisu aktualizací softwaru.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti

Projít školení >

Získejte nové funkce jako první

Připojit se k programu Microsoft Insider >

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×