KB2950189 – RETTELSE: Der opstår en adgangsfejl, når du udfører en opdateringsforespørgsel på en tabel, der har en DML-udløser i SQL Server

Gælder for
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptomer

Antag, at du har en tabel med en DML-udløser i Microsoft SQL Server 2008 R2, SQL Server 2012 eller SQL Server 2014, og i den udløser forbinder du en indsat/slettet tabel med andre tabeller. Når du udfører en DML-sætning på denne tabel, kan der opstå en adgangsovertrædelse under kompilering af udløseren, og du modtager følgende fejlmeddelelse:

Bemærk

Der opstod en alvorlig fejl på den aktuelle kommando. Eventuelle resultater skal kasseres.

Desuden logføres følgende fejl i SQL Server-fejlloggen:

Bemærk

<Dato><og klokkeslæt> spid# ***Stakdump sendes til <FilePath>\SQLDumpxxx.txt
<Dato><og klokkeslæt> spid# SqlDumpExceptionHandler: Proces # genereret alvorlig undtagelse c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server afslutter denne proces.
<Dato><og klokkeslæt> spid# * *******************************************************************************
<Dato><og klokkeslæt> spid# *
<Dato><og klokkeslæt> spid# * START STAKDUMP:
<Dato><og klokkeslæt> spid# * <Dato><og klokkeslæt> spid #
<Dato><og klokkeslæt> spid# *
<Dato><og klokkeslæt> spid# *
<Dato><og klokkeslæt> spid# * Undtagelsesadresse = 00000000009E4F2A Module(sqlservr+0000000002D4F2A)
<Dato><og klokkeslæt> spid# * Undtagelseskode = c0000005 EXCEPTION_ACCESS_VIOLATION
<Dato><og klokkeslæt> spid# * Der skete adgangsovertrædelse ved at skrive adresse 00000000000000000000
<Dato><og klokkeslæt> spid# * Inputbuffer 510 byte -
<Dato><og klokkeslæt> spid# * SQL_query_code

Løsning

Problemet blev først løst i følgende kumulative opdatering af SQL Server.

Kumulativ opdatering 1 til SQL Server 2012 SP2 /en-us/help/2976982

Samlet opdatering 2 til SQL Server 2014 /en-us/help/2967546

Kumulativ opdatering 10 til SQL Server 2012 SP1 /en-us/help/2954099

Samlet opdatering 12 til SQL Server 2008 R2 SP2 /en-us/help/2938478

Om kumulative opdateringer til SQL Server

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

      

Løsning

Du kan løse problemet ved ikke at bruge tabellen indsat/slettet direkte i en forespørgsel, der sammenkæder den med andre tabeller, men i stedet cachelagre den i en midlertidig tabel og bruge tabellen midlertidig i forespørgslen.

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".