Applies ToMicrosoft SQL Server 2005 Service Pack 3 Microsoft SQL Server 2005 Service Pack 4 SQL Server 2008 Service Pack 2 Microsoft SQL Server 2005 SQL Server 2008 SQL Server 2008 R2

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2005, Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 как один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в более ранний выпуск SQL Server 2005, Microsoft SQL Server 2008 и SQL Server 2008 R2 fixing.Исправление, описанное в этой статье, доступно для указанных ниже версий SQL Server.

  • Microsoft SQL Server 2005 с пакетом обновления 3 (SP3)

  • Microsoft SQL Server 2005 с пакетом обновления 4 (SP4)

  • Microsoft SQL Server 2008 с пакетом обновления 1 (SP1)

  • Microsoft SQL Server 2008 с пакетом обновления 2 (SP2)

Проблемы

Рассмотрим следующий сценарий.

  • На компьютере, на котором запущены Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2, создается связанный сервер. Связанный сервер указывает на источник данных OLE DB на удаленном сервере.

  • Вы создаете синонимы для таблицы на связанном сервере.

  • Вы создаете пользовательскую функцию, которая использует синоним, или создает представление, использующее синоним. Затем выполняется запрос к пользовательской функции или представлению.Примечание. При выполнении запроса выполняется кэширование плана выполнения.

  • Вы выполняете операцию на удаленном сервере, чтобы обновить версию схемы таблицы на связанном сервере. Например, вы можете перестроить индекс таблицы на удаленном сервере, чтобы обновить ее версию в схеме на связанном сервере.

  • Вы запускаете другой запрос для пользовательской функции или представления.

В этом случае появляется сообщение об ошибке, подобное следующему:

Сервер: MSG 7359, номер уровняуровня, номер состояниясостояния, номер строкив строке "поставщик OLE DB" "имяпоставщика" связанного сервера "имя связанногосервера" сообщило о смене версии схемы между временем компиляции ("время компиляции") и временем выполнения ("время выполнения") для таблицы "имя связанной таблицы".

Имя поставщика заметок — это заполнитель, который представляет имя поставщика OLE DB. Имя связанной таблицы — это заполнитель, который представляет имя таблицы на связанном сервере.

Причина

Эта проблема возникает из-за того, что существующий план выполнения не очищается должным образом. Это приведет к тому, что версия схемы изменится, так как пользовательская функция или представление перекомпилируется при выполнении второго запроса. Таким образом, возникает ошибка.

Решение

Сведения о накопительном пакете обновления

SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2544793 Накопительный пакет обновления 1 для 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

Исправление для этой проблемы впервые выпущено в накопительном обновлении 7. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:

2507770 Накопительный пакет обновления 7 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

Для SQL Server 2005 с пакетом обновления 3 (SP3)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 15. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2005 с пакетом обновления 3 (SP3), щелкните следующий номер статьи базы знаний Майкрософт:

2507766 Накопительный пакет обновления 15 для SQL Server 2005 с пакетом обновления 3 (SP3) Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2005 SP3. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

960598 Сборки SQL Server 2005, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2005

Для SQL Server 2005 с пакетом обновления 4 (SP4)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2005 с пакетом обновления 4 (SP4), щелкните следующий номер статьи базы знаний Майкрософт:

2507769 Накопительный пакет обновления 3 для SQL Server 2005 с пакетом обновления 4 (SP4)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2005 SP4. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

937137 Сборки SQL Server 2005, выпущенные после выпуска пакета обновления 4 (SP4) для SQL Server 2005

Для SQL Server 2008 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 13. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:

2497673 Накопительный пакет обновления 13 для SQL Server 2008 с пакетом обновления 1 (SP1) Примечание. Поскольку сборки являются кумулятивными, каждый новый набор исправлений содержит все исправления и все исправления системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

970365 Сборки SQL Server 2008, выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1)

Для SQL Server 2008 с пакетом обновления 2 (SP2)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 2 (SP2), щелкните следующий номер статьи базы знаний Майкрософт:

2498535 Накопительный пакет обновления 3 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 2 (SP2). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2402659 Сборки SQL Server 2008, выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2)

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Дополнительная информация

Дополнительные сведения об использовании Transact-SQL для создания синонимов можно найти на веб-сайте Microsoft Developer Network (MSDN).

Создание синонимов с помощью Transact-SQL

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.