症状
假设你尝试使用双字节字符集(DBCS)排序规则的任何语言版本的 Microsoft SQL Server 2008 R2 加载同义词库文件。 同义词库文件包含具有 "0x20" 后缀的同义词。 在这种情况下,不会加载同义词库文件,并且您将收到以下错误消息:
消息50000,级别16,状态1,过程 sp_fulltext_rethrow_error,行 36Error 30049,级别16,状态1,过程 sp_fulltext_thesaurus_update,行61,消息:全文同义词库内部错误(HRESULT = "0x8007054e")
原因
出现此问题的原因是 LEN 函数返回具有 "0x20" 后缀的错误同义词。 "0x20" 后缀被解释为 ASCII 空格字符。 因此, LEN 函数返回一个较小的数据长度值。
解决方案
累积更新信息
累积更新4 SQL Server 2008 R2 Service Pack 2 (SP2)
此问题的修补程序首次在累积更新4中发布。有关如何为 SQL Server 2008 R2 Service Pack 2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2777358 SQL Server 2008 R2 Service Pack 2 的累积更新程序包4注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 2 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 发布 SQL Server 2008 R2 Service Pack 2 后发布的 SQL Server 2008 R2 版本注意 应用此修补程序后,将使用 DATALENGTH 函数,而不是 LEN 函数。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。