Symptomy
Załóżmy, że tabela zawierająca wyzwalacz DML w programie Microsoft SQL Server 2008 R2, SQL Server 2012 lub SQL Server 2014 i w tym wyzwalaczu dołączy do wstawionej/usuniętej tabeli z innymi tabelami. Po wykonaniu instrukcji DML w tej tabeli podczas kompilacji wyzwalacza może wystąpić naruszenie zasad dostępu i jest wyświetlany następujący komunikat o błędzie:
W bieżącym poleceniu wystąpił poważny błąd. Ewentualne wyniki należy odrzucić.
Ponadto w dzienniku błędów programu SQL Server są rejestrowane następujące błędy:
Data<><godzina> Identyfikator SPID # * * * zrzut stosu wysyłany do <FilePath>\SQLDumpxxx.txt<Date><Time> SPID # SqlDumpExceptionHandler: proces # wygenerowano krytycznie wyjątek c0000005 EXCEPTION_ACCESS_VIOLATION. Program SQL Server przerywa ten proces.Data<><godzina> Identyfikator SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *><<>><<Data><2><godzina><5 identyfikatorze spid # *><6 Data><godzina><9 identyfikator SPID #><0 Data><czas><3 numeru SPID # * Data><4><czas numeru SPID><7 numeru><8 data<><godzina>identyfikatorze SPID # * kod wyjątku = c0000005 EXCEPTION_ACCESS_VIOLATION< Date><Time> SPID # * nastąpiło naruszenie zasad dostępu w adresie 0000000000000000< Date><Time> SPID 510
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 1 dla programu SQL Server 2012 z dodatkiem SP2 /en-us/help/2976982
Zbiorcza aktualizacja 2 dla programu SQL Server 2014 /en-us/help/2967546
Zbiorcza aktualizacja 10 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2954099
Zbiorcza aktualizacja 12 dla programu SQL Server 2008 R2 z dodatkiem SP2 /en-us/help/2938478
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Obejście
Aby obejść ten problem, nie należy używać wstawionej/usuniętej tabeli bezpośrednio w zapytaniu z innymi tabelami, zamiast je buforować w tabeli tymczasowej i używać tabeli tymczasowej w zapytaniu.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".