KB2498818 – ПОПРАВКА: Грешка 7359, когато изпълните заявка спрямо дефинирана от потребителя функция или изглед, който използва синоним на свързан сървър в SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2

Отнася се за
Microsoft 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 разпространява корекциите за Microsoft SQL Server 2005, Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 като един файл за изтегляне. Тъй като корекциите са кумулативни, всяко ново издание съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекции за SQL Server 2005, Microsoft SQL Server 2008 и SQL Server 2008 R2.

Корекцията, описана в тази статия, е налична за следните версии на SQL Server:

  • Microsoft SQL Server 2005 Service Pack 3 (SP3)
  • Microsoft SQL Server 2005 Service Pack 4 (SP4)
  • Microsoft SQL Server 2008 Service Pack 1 (SP1)
  • Microsoft SQL Server 2008 Service Pack 2 (SP2)

Симптоми

Имайте предвид сценария, описан по-долу:

  • Създайте свързан сървър на компютър, на който се изпълнява Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2. Свързаният сървър сочи към източник на данни от OLE база данни на отдалечен сървър.

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

  • Можете да създадете дефинирана от потребителя функция, която използва синонима, или да създадете изглед, използващ синонима. След това изпълнявате заявка спрямо дефинираната от потребителя функция или изгледа.

    Забележка: Когато изпълните заявката, се кешира план за изпълнение.

  • Извършвате операция на отдалечен сървър, за да актуализирате версията на схемата на таблицата на свързания сървър. Например трябва да създадете отново индекса на таблицата на отдалечения сървър, за да актуализирате версията на схемата на таблицата на свързания сървър.

  • Изпълнявате друга заявка спрямо дефинираната от потребителя функция или изгледа.

В този случай получавате съобщение за грешка, подобно на следното:

Забележка

Сървър: съобщение 7359, номер на ниво на ниво, номер на щат, номер на ред на ред
Доставчикът на OLE база данни "Име на доставчик" за свързан сървър "Име на свързан сървър" докладва промяна във версията на схемата между времето за компилиране ("Време за компилиране") и времето на изпълнение ("Време на изпълнение") за таблица "Име на свързана таблица".

Името на доставчика на бележки е контейнер, който представлява името на доставчика на OLE база данни. Името на свързана таблица е контейнер, който представлява името на таблицата, която е на свързания сървър.

Причина

Този проблем възниква, защото съществуващият план за изпълнение не е изчистен правилно. Това води до промяна на версията на схемата, защото дефинираната от потребителя функция или изгледът се компилират отново, когато се изпълни втората заявка. Следователно възниква грешката.

Решение

Кумулативна информация за актуализацията

SQL Server 2008 R2 Service Pack 1

Корекцията за този проблем е издадена за първи път в сборна актуализация 1 за SQL Server 2008 R2 Service Pack 1. За допълнителна информация как да получите този пакет за кумулативна актуализация, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2544793 Сборен пакет за актуализация 1 за SQL Server 2008 R2 Service Pack 1Note Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция за SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2567616 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 7. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2507770 Сборен пакет за актуализация 7 за SQL Server 2008 R2 Забележка: Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

981356 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2

За SQL Server 2005 SP3

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 15. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2005 SP3, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2507766 Сборен пакет за актуализация 15 за SQL Server 2005 SP3
Забележка: Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2005 SP3. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

960598 Компилациите на SQL Server 2005, които са издадени след издаването на SQL Server 2005 SP3

За SQL Server 2005 SP4

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 3. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2005 SP4 щракнете върху следния номер на статия от базата знания на Microsoft:

2507769 Сборен пакет за актуализация 3 за SQL Server 2005 SP4
Забележка: Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2005 SP4. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

937137 Компилациите на SQL Server 2005, които са издадени след издаването на SQL Server 2005 SP4

За SQL Server 2008 SP1

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 13. За повече информация как да получите този сборен пакет за актуализация за SQL Server 2008 SP1, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2497673 Сборен пакет за актуализация 13 за SQL Server 2008 SP1
Забележка: Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008 SP1. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

970365 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 SP1

За SQL Server 2008 SP2

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 3. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2008 SP2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2498535 Сборен пакет 3 за SQL Server 2008 SP2
Забележка: Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008 SP2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 SP2

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Повече информация

За повече информация как да използвате Transact-SQL за създаване на синоним, посетете следния уеб сайт на Microsoft Developer Network (MSDN):

Как да използвате Transact-SQL за създаване на синоним