Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 или SQL Server 2008 R2.
Проблема
Рассмотрим следующий сценарий.
- Вы создаете публикацию слияния и настраиваете ее для включения веб-синхронизации на компьютере, на котором работает Microsoft SQL Server 2008 или SQL Server 2008 R2.
- Вы выбираете таблицу для публикации. В таблице есть несколько столбцов XML, и для некоторых столбцов XML задано значение NULL.
- Вы настраиваете подписку на публикацию слияния, а затем инициализируете репликацию слияния.
В этом случае определенное количество последних столбцов таблицы подписок пусты.
Например, у вас есть таблица с тремя XML-столбцами. Первый столбец XML имеет значение NULL в одной из записей таблицы. Однако второй и третий столбцы XML этой записи содержат данные XML. В этом сценарии последний XML-столбец после репликации слиянием по ошибке становится пустой строкой.
Причина
Эта проблема возникает из-за ошибки в логике репликации для веб-синхронизации.
При репликации подсчитывается количество столбцов XML, которые не имеют значения NULL. Однако при потоковой передаче XML-столбцам репликация реплицирует только это число столбцов при потоковой передаче подписчику. Поэтому остальные столбцы содержат пустую строку.
В примере, описанном в разделе "Симптомы", есть два столбца XML, которые не имеют значения NULL. Поэтому только первые два XML-столбца реплицируются с правильными данными.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 с пакетом обновления 1 (SP1)
Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 10 для SQL Server 2008 с пакетом обновления 1. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:
2279604 Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 1Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
970365 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1) Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) для установки SQL Server 2008 с пакетом обновления 1. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.
SQL Server 2008 с пакетом обновления 2 (SP2)
Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 1 для SQL Server 2008 с пакетом обновления 2. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:
2289254 Накопительный пакет обновления 1 для SQL Server 2008 с пакетом обновления 2 (SP2) Так как сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 г. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
2402659 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2)
SQL Server 2008 R2
Исправление этой проблемы впервые выпущено в накопительном пакете обновления 5. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, откройте статью со следующим номером в базе знаний Майкрософт:
Накопительный пакет обновления 2438347 5 для SQL Server 2008 R2 Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Дополнительные сведения о веб-синхронизации для репликации слиянием см. на следующем веб-сайте сети Microsoft Developer Network (MSDN):
Общие сведения о веб-синхронизации для репликации слияния Дополнительные сведения о настройке веб-синхронизации для репликации слиянием см. на следующем веб-сайте MSDN:
Общие сведения о настройке веб-синхронизации для репликации слиянием Дополнительные сведения о модели добавочного обслуживания для SQL Server см. в следующей статье базы знаний Майкрософт:
935897 Команда SQL Server предоставляет модель добавочного обслуживания для предоставления исправлений для обнаруженных проблем
Дополнительные сведения о схеме именования для обновлений SQL Server см. в следующей статье базы знаний Майкрософт:
822499 Новая схема именования пакетов обновления программного обеспечения Microsoft SQL Server Дополнительные сведения о терминологии обновления программного обеспечения см. в следующей статье базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программного обеспечения Майкрософт