Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 с пакетом обновления 1 (SP1) и Microsoft SQL Server 2008 R2 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 с пакетом обновления 1 (SP1) и SOL Server 2008 R2.
Проблема
Рассмотрим следующий сценарий.
Вы включаете отслеживание изменений в таблице в SQL Server 2008 или SQL Server 2008 R2.
Запрос, в котором используется функция CHANGETABLE вместе с аргументом last_sync_version, возвращает сведения об отслеживании изменений, внесенных в таблицу.
В качестве аргумента last_sync_version передается значение bigint.
Например, после включения функции отслеживания изменений в таблице можно выполнить следующий запрос:
SELECT * FROM CHANGETABLE(changes dbo.t1, 2222222222) as ct
В этом случае запрос завершается сбоем и вы получаете следующие сведения:
Примечание
MSG 1080, уровень 15, состояние 1, строка 1
Целое значение, значение bigint находится вне допустимого диапазона.
Заметки
- Тип аргумента last_sync_version определяется как bigint. Поэтому ожидается успешное выполнение запроса.
- Значение bigint — это заполнитель, представляющий значение bigint, передаваемое в качестве аргумента last_sync_version.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 1 для SQL Server 2008 R2 с пакетом обновления 1. Дополнительные сведения о том, как получить этот накопительный пакет обновления, см. в следующей статье базы знаний Майкрософт:
2544793 Накопительный пакет обновления 1 для пакета обновления 1 SQL Server 2008 R2 Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1
SQL Server 2008 с пакетом обновления 2 (SP2)
Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 4 для SQL Server 2008 с пакетом обновления 2 (SP2). Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:
2527180 Накопительный пакет обновления 4 для SQL Server 2008 с пакетом обновления 2 (SP2) Так как сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
2402659 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2) Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления для SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 2 (SP2) для установки SQL Server 2008 с пакетом обновления 2. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.
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
Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 13. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2008 SP1, откройте статью со следующим номером в базе знаний Майкрософт:
2497673 Накопительный пакет обновления 13 для SQL Server 2008 с пакетом обновления 1
Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 с пакетом обновления 1 (SP1). Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
970365 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1)
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов 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):