Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Ознаки

Припустимо, що ви створюєте збережену процедуру, яка використовує курсор на змінну таблиці в Microsoft SQL Server 2012 або SQL Server 2014. Крім того, Збережена процедура оновлює таблицю за допомогою елемента, у якому поточна інструкція разом з курсором. Наприклад, Збережена процедура може нагадувати наступне:

CREATE PROCEDURE dbo.usp_TestSP AS  BEGIN  DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL)  DECLARE @curInt INT, @newInt INT SET @newInt = 1  DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL  OPEN ccc  FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc  SELECT * FROM @TableVar END 

Під час виконання збереженої процедури за допомогою збереженої процедури sp_refreshsqlmodule система може виникнути порушення прав доступу, і ви можете отримати повідомлення про помилку, які нагадують такі дії:

MSG 596, рівень 21, стан 1 не може продовжити виконання, оскільки сеанс перебуває в стані "вбити". MSG 0, рівень 20, стан 0A сталася серйозна помилка в поточній команді. Результати, якщо такі є, повинні бути відкинуті.

У цій ситуації також записано помилки, які нагадують таке повідомлення про помилки SQL Server:

Дата й час. 730 spid51 SqlDumpExceptionHandler: процес 51 згенерований фатальний виняток c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] ' дата дати. 730 spid51 * дата часу. 730 spid51 *

Спосіб вирішення

Відомості про Сукупне оновлення

Цю проблему вирішено в таких оновленні:

Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:

Стан

Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".

Посилання

Відомості про термінологію , яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×