KB2519358 – КОРЕКЦИЯ: Грешка "Цялата стойност е извън диапазона", когато предадете стойност bigint като аргумент last_sync_version на функцията CHANGETABLE в SQL Server 2008 или SQL Server 2008 R2

Отнася се за
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express

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):

Обща информация за функцията CHANGETABLE за Transact-SQL