Ознаки
Припустимо, що у вас є таблиця, яка має тригер DML в Microsoft SQL Server 2008 R2, SQL Server 2012 або SQL Server 2014 і в цьому спусковому димі ви приєднаєтеся до вставленої або видаленої таблиці з іншими таблицями. Під час виконання інструкції DML в цій таблиці порушення прав доступу може виникати під час компіляції, і з'являється таке повідомлення про помилку:
У поточній команді сталася серйозна помилка. Результати, якщо такі є, повинні бути відкинуті.
Крім того, під час входу в журнал помилок SQL Server записується таке повідомлення про помилки:
<дата><час> SPID # * * * дамп стек направляється на <filepath>\Sqlxxxx.txt<дата><час> SPID # SqlDumpExceptionHandler: процес # згенерований фатальний виняток c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server припине цей процес.<дата><час> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *,<>< час>SPID # * початок стека:><<><2 дата><час><5 spid # * ><6 дата><час><9 SPID #><0 Date><Time><3 spid # *><4 дата><час><7 SPID # *><8 дата><час> SPID # * виняток адреса = 00000000009e4f22 модуля (Sqlr + 00000000002D4F2A)<дата><час> SPID # * код винятку = C0000005 EXCEPTION_ACCESS_VIOLATION<дата><час> SPID # * порушення доступу стався запис адреса 0000000000000000<дата><час> SPID # * вхід буфера 510 байт-<дата><час>SPID # * SQL_query_code
Спосіб вирішення
Ця проблема була спочатку зафіксоване в цьому сукупному оновленні сервера SQL Server.
Сукупне оновлення 1 для SQL Server 2012 з пакетом оновлень 2 (SP2) /en-us/help/2976982
Сукупне оновлення 2 для SQL Server 2014 /en-us/help/2967546
Сукупне оновлення 10 для SQL Server 2012 SP1 /en-us/help/2954099
Сукупне оновлення 12 для SQL Server 2008 R2 SP2 /en-us/help/2938478
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Інші способи вирішення
Щоб вирішити цю проблему, не використовуйте вставлену або видалену таблицю безпосередньо в запиті, щоб приєднатися до неї з іншими таблицями, а не кешувати її в таблиці Temp і використовувати таблицю Temp у запиті.
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".