KB2950189 – ÅTGÄRD: Ett åtkomstfel inträffar när du kör en uppdateringsfråga på en tabell som har en DML-utlösare i SQL Server

Gäller för
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)

Symptom

Anta att du har en tabell som har en DML-utlösare i Microsoft SQL Server 2008 R2, SQL Server 2012 eller SQL Server 2014 och i den utlösaren kopplar du infogad/borttagen tabell med andra tabeller. När du kör en DML-instruktion i den här tabellen kan ett åtkomstfel uppstå under utlösarkompileringen och du får följande fel:

Obs

Ett allvarligt fel uppstod på det aktuella kommandot. Resultaten, om sådana finns, ska ignoreras.

Dessutom loggas följande fel i felloggen för SQL Server:

Obs

<Datum></tid> spid# ***Stackdump som skickas till <FilePath>\SQLDumpxxx.txt
<Date><Time> spid# SqlDumpExceptionHandler: Process # generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server avslutar processen.
<Datum></tid> spid# * *******************************************************************************
<Datum></tid> spid# *
<Date><Time> spid# * BEGIN STACK DUMP:
<Datum><tid> spid# * <Datum><tid> spid #
<Datum></tid> spid# *
<Datum></tid> spid# *
<Date><Time> spid# * Exception Address = 00000000009E4F2A Module(sqlservr+0000000002D4F2A)
<Datum><tid> spid# * Undantagskod = c0000005 EXCEPTION_ACCESS_VIOLATION
<Datum><tid> spid# * Åtkomstfel inträffade när adressen skrevs 00000000000000000000000000000000000000000000000000000000000000000000000000000000
<Datum></tid> spid# * Indatabuffert: 510 byte -
<Datum><tid> spid# * SQL_query_code

Lösning

Problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.

Kumulativ uppdatering 1 för SQL Server 2012 SP2 /en-us/help/2976982

Kumulativ uppdatering 2 för SQL Server 2014 /en-us/help/2967546

Kumulativ uppdatering 10 för SQL Server 2012 SP1 /en-us/help/2954099

Kumulativ uppdatering 12 för SQL Server 2008 R2 SP2 /en-us/help/2938478

Om kumulativa uppdateringar för SQL Server

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

      

Lösning

Lös problemet genom att inte använda den infogade/borttagna tabellen direkt i en fråga som kopplar den till andra tabeller, utan istället cachelagra den i en tillfällig tabell och använda den tillfälliga tabellen i frågan.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".