Korriger: Brudd på tilgangstillatelse når du utfører en lagret prosedyre som bruker en markør på en tabellvariabelen i SQL Server

VIKTIG: Denne artikkelen ble oversatt med maskinoversettelsesprogramvare fra Microsoft og muligens redigert av Microsoft Community via CTF-teknologi i stedet for av en oversetter. Microsoft tilbyr både menneskelig oversatte og maskinoversatte/Community-redigerte artikler, slik at du får tilgang til alle artiklene i vår Knowledge Base på ditt eget språk. En maskinoversatt eller Community-redigert artikkel er imidlertid ikke alltid perfekt. Den kan inneholde feil i vokabular, syntaks eller grammatikk, mye likt en fremmedspråklig som forsøker å snakke språket ditt. Microsoft har ikke ansvar for unøyaktige opplysninger, feil eller skade forårsaket av feilaktig oversettelse av innholdet eller kundenes bruk av informasjonen. Microsoft oppdaterer jevnlig maskinoversettelsesprogramvaren og -verktøyene for å forbedre redigering av maskinoversatte tekster.

Den engelske versjonen av denne artikkelen er den følgende: 3138930
Symptom
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 enDer 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 cccCLOSE 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 *

Løsning

Informasjon om kumulativ oppdatering

Dette problemet er løst i følgende oppdateringer:
Anbefaling: Installere den nyeste kumulative oppdateringen for SQL Server

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 den terminologi som Microsoft bruker for å beskrive programvareoppdateringer.

Advarsel: Denne artikkelen er autooversatt

Egenskaper

Artikkel-ID: 3138930 – Forrige gjennomgang: 05/31/2016 09:30:00 – Revisjon: 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 KbMtno
Tilbakemelding