FIX: Toegangsfout bij het uitvoeren van een opgeslagen procedure die gebruikmaakt van een cursor op een tabelvariabele in SQL Server

BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.

De Engelstalige versie van dit artikel is de volgende: 3138930
Symptomen
Stel u een opgeslagen procedure die gebruikmaakt van een cursor op de variabele van een tabel in Microsoft SQL Server 2012 of in SQL Server 2014. Daarnaast werkt de opgeslagen procedure in de tabel met behulp van een instructieWaarbij huidige van samen met de cursor.

Bijvoorbeeld, kan uw opgeslagen procedure uitzien:
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 

Wanneer u de opgeslagen procedure uitvoeren met behulp van de sp_refreshsqlmodule , opgeslagen procedure, kan een toegangsfout optreden, en u ontvangt foutberichten die vergelijkbaar zijn met de volgende:
Msg 596, niveau 21, staat 1Cannot blijven de uitvoering omdat de kill-status van de sessie is. 0, niveau 20, MSG staat 0A ernstige fout in de huidige opdracht. De resultaten, moeten indien aanwezig, worden genegeerd.

In deze situatie kan fouten de volgende strekking ook geschreven aan de foutenlogboeken van SQL Server:
datum time.730 spid51 SqlDumpExceptionHandler: 51 proces gegenereerd fatale uitzondering c0000005 EXCEPTION_ACCESS_VIOLATION. Dit proces wordt beëindigd.
date time.730 spid51 * *******************************************************************************
datum time.730 spid51 *
datum time.730 spid51 * STACK DUMP beginnen:
datum time.730 spid51 * datum tijd spid 51
datum time.730 spid51 *
datum time.730 spid51 *
datum time.730 spid51 * uitzondering adres = 00007FFC270236D5 Module(sqllang+00000000005036D5)
datum time.730 spid51 * uitzondering c0000005 EXCEPTION_ACCESS_VIOLATION =
datum time.730 spid51 * toegangsfout bij het lezen van 0000006F00620074 adres
datum time.730 spid51 * Input Buffer 136 bytes -
datum time.730 spid51 * sp_refreshsqlmodule EXECUTE N'[dbo]. [usp_TestSP]'
datum time.730 spid51 *
datum time.730 spid51 *

Oplossing

Cumulatieve update informatie

Dit probleem is opgelost in de volgende updates:
Aanbeveling: Installeer de meest recente cumulatieve update voor SQL Server

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingscorrecties die zijn opgenomen in de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Referenties
Meer informatie over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 3138930 - Laatst bijgewerkt: 05/31/2016 09:29:00 - Revisie: 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 KbMtnl
Feedback