Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2008 как один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в пакет исправлений для Microsoft SQL Server 2008 R2 или SQL Server 2008.
Проблемы
Рассмотрим следующий сценарий.
-
Вы создаете хранимую процедуру среды CLR для базы данных Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2008.
-
Хранимая процедура CLR реализована как открытый статический метод, возвращающий целочисленное значение в Microsoft .NET Framework.
-
Вы запускаете приложение, которое вызывает хранимую процедуру CLR. Хранимая процедура CLR возвращает правильное значение.
-
Вы выполняете некоторые операции, которые перекомпилируются план выполнения для хранимой процедуры CLR.Примечание. Дополнительные сведения о повторной компиляции плана выполнения для хранимой процедуры можно найти в разделе "Дополнительные сведения".
-
Запустите приложение еще раз.
В этом сценарии хранимая процедура среды CLR неправильно возвращает значение NULL. Кроме того, чтобы устранить эту ошибку, необходимо перезапустить службу SQL Server.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 с пакетом обновления 3
Исправление для этой проблемы впервые выпущено в накопительном обновлении 2 для SQL Server 2008 с пакетом обновления 3. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2633143 Накопительный пакет обновления 2 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление SQL Server 2008 с пакетом обновления 3 (SP3) к установке SQL Server 2008 с пакетом обновления 3 (SP3). По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 2 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2567714 Накопительный пакет обновления 2 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)
SQL Server 2008 R2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 8. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2534352 Накопительный пакет обновления 8 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
Дополнительная информация
Чтобы перекомпилировать план выполнения для хранимой процедуры, выполните любое из указанных ниже действий.
-
Запустите инструкцию DBCCFREEPROCCACHE .
-
Выполните одно из указанных ниже инструкций для таблицы или представления.
-
ИЗМЕНЕНИЕ ТАБЛИЦЫ
-
ИНСТРУКЦИЯ ALTER VIEW
-
-
Запустите план выполнения, который изменяет или удаляет индексы.
-
Выполнение операции обновления статистики, используемой планом выполнения. Примечание. Вы можете выполнить оператор для выполнения операции обновления или выполнить операцию обновления автоматически.
-
Выполните инструкцию sp_recompile .
-
Внесите изменения в клавиши. Например, можно использовать учетную запись пользователя, которая обновляет таблицу, на которую ссылается оператор, для выполнения инструкции INSERT или Delete .
-
Вставка или удаление большого количества строк из таблицы, содержащей триггеры.
-
Для выполнения хранимой процедуры используйте параметр WITH RECOMPILE .
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Дополнительные сведения о хранимых процедурах среды CLR можно найти на веб-сайте MSDN по следующему адресу:
Общие сведения о хранимых процедурах среды CLRЧтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемЧтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerЧтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт