В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Исправление: Нарушение прав доступа при выполнении хранимой процедуры, которая использует курсор на переменную table в SQL Server

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 3138930
Проблема
Предположим, что хранимая процедура, которая использует курсор на переменную-таблицу в Microsoft SQL Server 2012 или SQL Server 2014 г. Кроме того хранимая процедура обновляет таблицу с помощью инструкцииWHERE CURRENT OF вместе с курсором.

Например хранимая процедура может выглядеть следующим образом:
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 уровень состояния 1Cannot продолжить выполнение, поскольку сеанс находится в состоянии деактивации. Сообщение 0, уровень 20, состояние 0A серьезная ошибка в текущей команде. Результаты, если таковые имеются, должны быть аннулированы.

В этом случае следующие сообщения об ошибках также записываются в журналы ошибок SQL Server:
Дата time.730 spid51 SqlDumpExceptionHandler: 51 процесса создается неустранимое исключение c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server завершает этот процесс.
date time.730 spid51 * *******************************************************************************
Дата time.730 spid51 *
Дата time.730 spid51 * НАЧАТЬ ДАМПА стека:
Дата time.730 spid51 * Дата время spid 51
Дата time.730 spid51 *
Дата time.730 spid51 *
Дата time.730 spid51 * адрес исключения = 00007FFC270236D5 Module(sqllang+00000000005036D5)
Дата time.730 spid51 * код исключения = c0000005 EXCEPTION_ACCESS_VIOLATION
Дата time.730 spid51 * нарушение прав доступа при чтении адрес 0000006F00620074
Дата time.730 spid51 * 136 входной буфер байтов -
Дата time.730 spid51 * выполнить хранимую процедуру sp_refreshsqlmodule N'[dbo]. [usp_TestSP] "
Дата time.730 spid51 *
Дата time.730 spid51 *

Решение

Информация о накопительном пакете обновления

Эта проблема исправлена в следующих обновлений:
Рекомендация: Установите последнее накопительное обновление для SQL Server

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и все безопасности исправления, входившие в состав предыдущего накопительного обновления. Извлечь последние накопительные обновления для SQL Server:
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Ссылки
Дополнительные сведения о Терминология , которые корпорация Майкрософт использует для описания обновлений программного обеспечения.

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 3138930 — последний просмотр: 05/31/2016 08:59:00 — редакция: 3.0

Microsoft SQL Server 2012 Service Pack 3, Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3138930 KbMtru
Отзывы и предложения
cument.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);