Проблемы
Предположим, что вы пытаетесь загрузить файл тезауруса на любой языковой версии Microsoft SQL Server 2008 R2, использующей параметры сортировки с двухбайтовой кодировкой (DBCS). Файл тезауруса содержит синонимы с суффиксом "0x20". В этом случае файл тезауруса не загружается, и появляется следующее сообщение об ошибке:
MSG 50000, уровень 16, состояние 1, процедура sp_fulltext_rethrow_error, Line 36Error 30049, уровень 16, состояние 1, процедура sp_fulltext_thesaurus_update, строка 61, сообщение: Внутренняя ошибка полнотекстового тезауруса (HRESULT = ' 0x8007054e ')
Причина
Эта проблема возникает из-за того, что функция ДЛСТР возвращает неверные синонимы с суффиксом "0x20". Суффикс "0x20" интерпретируется как символ пробела в коде ASCII. Таким образом, функция ДЛСТР возвращает одно меньшее значение длины данных.
Решение
Сведения о накопительном пакете обновления
Накопительное обновление 4 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 4. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 2 (SP2), щелкните следующий номер статьи базы знаний Майкрософт:
2777358 Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск пакета обновления 2 (SP2) для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание После применения этого исправления вместо функции ДЛСТР будет использоваться функция DATALENGTH .
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".