Příznaky
Předpokládejme, že máte tabulku, která má aktivační událost DML v Microsoft SQL serveru 2008 R2, SQL serveru 2012 nebo SQL Server 2014, a v této aktivační události jste přihlášeni k vložené nebo odstraněné tabulce s ostatními tabulkami. Při provádění příkazu DML v této tabulce může dojít k porušení přístupu během kompilace triggeru a zobrazí se následující chybová zpráva:
V aktuálním příkazu došlo k závažné chybě. Případné výsledky se zahodí.
Kromě toho jsou do protokolu chyb SQL serveru zaznamenány následující chyby:
<datum><čas> poc0000005 SPID # * * * výpis zásobníku na cestu k<FilePath>\SQLDumpxxx.txt<datum><čas> spid # SqlDumpExceptionHandler: proces # vygeneroval závažnou výjimku EXCEPTION_ACCESS_VIOLATION. SQL Server tento proces ukončuje. Datum<><čas> číslo SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-* *<datum><čas> SPID # *<datum><čas><1 SPID # * začátek výpisu zásobníku:><2><čas)><5 číslo SPID # * ><6 data><času ><9 číslo SPID #><0 datum>< času><3 SPID # *><4 Datum><čas ><7 číslo SPID # * 00000000009E4F2A (sqlservr + 00000000002D4F2A)><8 datum><čas> číslo SPID # * kód výjimky = c0000005 EXCEPTION_ACCESS_VIOLATION<datum><čas> SPID # * došlo k narušení přístupu při zápisu adresy 0000000000000000<datum><čas> čas<číslo SPID # * vstupní vyrovnávací paměť 510 bajty –><datum>času SQL_query_code SPID # *
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru.
Kumulativní aktualizace 1 pro SQL Server 2012 SP2 /en-us/help/2976982
Kumulativní aktualizace 2 pro SQL Server 2014 /en-us/help/2967546
Kumulativní aktualizace 10 pro SQL Server 2012 SP1 /en-us/help/2954099
Kumulativní aktualizace 12 pro SQL Server 2008 R2 SP2 /en-us/help/2938478
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:
Alternativní řešení
Problém vyřešíte tak, že nepoužijete vloženou nebo odstraněnou tabulku přímo v dotazu, který ho spojuje s jinými tabulkami, místo toho do mezipaměti do dočasné tabulky a použijete tabulku Temp v dotazu.
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.