Symptomer
Anta at du oppretter en lagret prosedyre som bruker en markør på en tabellvariabelen i Microsoft SQL Server 2012 eller SQL Server-2014. Den lagrede prosedyren oppdaterer dessuten tabellen ved hjelp av en Der gjeldende av setning sammen med markøren.
Den lagrede prosedyren kan for eksempel ligne på følgende:
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 ccc
CLOSE ccc
SELECT * FROM @TableVar
END
Når du kjører den lagrede prosedyren ved hjelp av sp_refreshsqlmodule lagret prosedyre, et brudd på tilgangstillatelse kan oppstå, og du kan få feilmeldinger som ligner på følgende:
Msg 596, nivå 21 tilstand 1Cannot fortsette kjøringen fordi økten er i kill-tilstand. Msg 0, nivå 20 tilstand 0A alvorlig feil oppstod på gjeldende kommando. Resultatene, bør om noen, forkastes.
I så fall skrives også feil som ligner på følgende til SQL Server-feillogger:
Datoen time.730 spid51 SqlDumpExceptionHandler: prosessen 51 generert kritisk unntak c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server, avsluttes prosessen.
date time.730 spid51 * *******************************************************************************
Datoen time.730 spid51 *
Datoen time.730 spid51 * BEGYNNE BUNKE DUMP:
Datoen time.730 spid51 * dato klokkeslett spid 51
Datoen time.730 spid51 *
Datoen time.730 spid51 *
Datoen time.730 spid51 * unntaksadressen = 00007FFC270236D5-Module(sqllang+00000000005036D5)
Datoen time.730 spid51 * unntakskode = c0000005 EXCEPTION_ACCESS_VIOLATION
Datoen time.730 spid51 * brudd på tilgangstillatelse ved lesing adresse 0000006F00620074
Datoen time.730 spid51 * Input Buffer 136 byte -
Datoen time.730 spid51 * kjøre sp_refreshsqlmodule N'[dbo]. [usp_TestSP] "
Datoen time.730 spid51 *
Datoen time.730 spid51 *
Oppløsning
Informasjon om kumulativ oppdatering
Dette problemet er løst i følgende oppdateringer:
-
Kumulativ oppdatering 13 for SQLServer 2014
-
Samleoppdatering 6 for SQL Server 2014 Service Pack 1 (SP1)
-
Samleoppdatering 2 for SQL Server 2012 Service Pack 3 (SP3)
-
Kumulativ oppdatering 11 for SQL Server 2012 Service Pack 2 (SP2)
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Referanser
Lær mer om terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.