Microsoft разпространява корекциите за Microsoft SQL Server 2008 Service Pack 1 (SP1) и Microsoft SQL Server 2008 R2 като един файл за изтегляне. Тъй като корекциите са кумулативни, всяко ново издание съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекции на SQL Server 2008 SP1 и SOL Server 2008 R2.
Симптоми
Имайте предвид сценария, описан по-долу:
Можете да разрешите проследяването на промените в таблица в SQL Server 2008 или в SQL Server 2008 R2.
Изпълнявате заявка, която използва функцията CHANGETABLE заедно с аргумента last_sync_version, за да върне информация за проследяване на промените, настъпили в таблицата.
Стойността bigint се предава като аргумент last_sync_version.
След като разрешите проследяването на промените в таблица, можете например да изпълните следната заявка:
SELECT * FROM CHANGETABLE(changes dbo.t1, 2222222222) as ct
При този сценарий изпълнението на заявката е неуспешно и получавате следната информация:
Забележка
Съобщение 1080, ниво 15, състояние 1, ред 1
Целочислената стойност на bigint е извън диапазона.
Бележки
- Типът на аргумента last_sync_version е дефиниран като bigint. Затова се очаква заявката да се изпълни успешно.
- Стойността BIGINT е контейнер, който представя стойността на bigint, подавана като аргумент last_sync_version.
Решение
Кумулативна информация за актуализацията
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 Service Pack 2
Корекцията за този проблем е издадена за първи път в сборна актуализация 4 за SQL Server 2008 Service Pack 2. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2527180 Сборен пакет за актуализация 4 за SQL Server 2008 Service Pack 2Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 2 Горещи корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 2 към инсталация на SQL Server 2008 Service Pack 2. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.
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
Корекцията за този проблем е издадена за първи път в кумулативна актуализация 13. За повече информация как да получите този сборен пакет за актуализация за SQL Server 2008 SP1, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2497673 Сборен пакет за актуализация 13 за SQL Server 2008 Service Pack 1
Забележка: Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008 SP1. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
970365 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 1
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Заобиколно решение
За да заобиколите този проблем, създайте променлива от тип bigint и след това подайте променливата като last_sync_version аргумент на функцията CHANGETABLE. Например можете успешно да изпълните следната заявка:
DECLARE @v3 bigint = 2222222222
SELECT * FROM CHANGETABLE(changes dbo.t1, @v3 ) as ct
Повече информация
За повече информация относно функцията CHANGETABLE за Transact-SQL посетете следния уеб сайт на Microsoft Development Network (MSDN):