KB979212 - ИСПРАВЛЕНО: значение DateTime заменяется значением NULL при разрешении конфликта с помощью пользовательского сопоставителя в репликации слияния Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2

Применяется к
Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Workgroup Edition Microsoft SQL Server 2005 Standard X64 Edition Microsoft SQL Server 2005 Enterprise X64 Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2.

Проблема

Рассмотрим следующий сценарий.

  • Репликация слияния создается в Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2.
  • Вы создаете пользовательский сопоставитель, который используется для определения победителей конфликтов после их обнаружения.
  • Имеется столбец типа данных "ДатаВремя".
  • Столбец DateTime содержит значение NULL на одном сайте. Значение в соответствующем поле на другом сайте не является значением DateTime в формате NULL. Один из этих сайтов является издателем, а другой — подписчиком.
  • Издатель и подписчик подключаются, после чего происходит синхронизация.

В этом сценарии пользовательский сопоставитель определяет, что значение NULL является победителем конфликта. Затем пользовательский сопоставитель заменяет значение DateTime на значение NULL.

Причина

Во время операции отправки Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2 использует результирующий набор настраиваемого сопоставителя для переопределения значения столбца в соответствии с его состоянием. Однако Microsoft SQL Server 2005, Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2 неправильно сбрасывает состояние столбца.

Решение

Сведения о накопительном пакете обновления

SQL Server 2005

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 9 для SQL Server 2005 с пакетом обновления 3. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

980176 Накопительный пакет обновления 9 для пакета обновления SQL Server 2005 г. 3Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2005 г. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

960598 Сборки SQL Server 2005 г., выпущенные после выпуска SQL Server 2005 с пакетом обновления 3 (SP3)
Исправления для Microsoft SQL Server 2005 предназначены для определенных пакетов обновления для SQL Server. Необходимо установить исправление для SQL Server 2005 с пакетом обновления 3 (SP3) для установки SQL Server 2005 с пакетом обновления 3 (SP3). По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

SQL Server 2008

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 9 для SQL Server 2008 с пакетом обновления 1. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2083921 накопительный пакет обновления 9 для 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

Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 3. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, откройте статью со следующим номером в базе знаний Майкрософт:

2261464 Накопительный пакет обновления 3 для SQL Server 2008 R2Note Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».

Ссылки

Дополнительные сведения о том, как репликация объединением обнаруживает и разрешает конфликты, см. на следующем веб-сайте Microsoft Developer Network (MSDN):

Обнаружение и разрешение конфликтов репликациями слияния Для получения сведений о модели добавочного обслуживания для SQL Server щелкните номер статьи со следующим номером в базе знаний Майкрософт:

935897 Команда SQL Server предоставляет модель добавочного обслуживания для предоставления исправлений для обнаруженных проблем

  Для получения дополнительной информации о том, как получить SQL Server 2005 с пакетом обновления 3, откройте статью со следующим номером в базе знаний Майкрософт:

913089
  Получение последней версии пакета обновления для SQL Server 2005
   Дополнительные сведения о новых возможностях и улучшениях в SQL Server 2005 с пакетом обновления 3 (SP3) можно найти на веб-сайте корпорации Майкрософт по следующему адресу:

https://go.microsoft.com/fwlink/?linkid=131442
  Дополнительные сведения о схеме именования для обновлений SQL Server см. в следующей статье базы знаний Майкрософт:

822499
  Новая схема именования пакетов обновления программного обеспечения Microsoft SQL Server
   Дополнительные сведения о терминологии обновления программного обеспечения см. в следующей статье базы знаний Майкрософт:

824684
  Стандартные термины, используемые при описании обновлений программного обеспечения Майкрософт