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

ИСПРАВИТЬ: SQL Server может аварийно завершить работу при запрос для выполнения удаленной хранимой процедуры содержит неполные определения аргументов

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

Эта статья на английском языке: 3135750
Проблема
На удаленном сервере, на котором выполняется Microsoft SQL Server 2012 и 2014 SQL Server имеется хранимая процедура, которая имеет выходной аргумент следующего вида:

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
Как правило синтаксис для вызова удаленной процедуры примерно так:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample ? OUTPUT', @outputResult OUTPUT) at [MyRemoteServer];print @outputResult;
Если опустить "? OUTPUT"часть синтаксиса вызова локального сервера, на котором выполняется SQL Server может произойти сбой. Удаленный сервер продолжает работать, потому что выполнение никогда не достигает его из-за такой пропуск синтаксиса. Например синтаксис примерно так:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
Переменной, которая не была инициализирована не приводит к аварийному завершению работы локального сервера. Тем не менее он формирует сообщение об ошибке о том, что не все аргументами для вызова (как они должны быть). Например можно использовать следующий синтаксис:

-- Declare a variable to hold a result, and initialize it with NULL, or leave uninitializeddeclare @outputResult varchar(10) = NULL;execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
В этом случае появляется сообщение об ошибке, подобное приведенному ниже:

Msg 201, уровень 16, состояние 4, процедура procExample, строка 10

Процедура или функция «procExample» ожидает параметр "@retVal", который не был указан.
Решение

Сведения об обновлении

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

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и все исправления безопасности, которые были включены в предыдущие накопительного обновления. Извлечь последние накопительные обновления для SQL Server:

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

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

Свойства

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

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 KB3135750 KbMtru
Отзывы и предложения