SQL Server 2012中的SOUNDEX功能似乎已破坏

时间:2015-03-04 04:48:33

标签: sql sql-server sql-server-2012 soundex

以下语句在SQL Server 2012中返回不同的SOUNDEX值,而它们在SQL Server 2008中生成相同值

PRINT SOUNDEX('BAKHSHI') --B200

PRINT SOUNDEX('Bakhshi') --B220

有没有其他人在SQL Server 2012中遇到此问题并知道如何解决它?

1 个答案:

答案 0 :(得分:1)

根据https://msdn.microsoft.com/en-us/library/bb510680.aspx

  

SOUNDEX函数实现以下规则:如果是大写的H或   大写字母W分隔两个具有相同数字的辅音   SOUNDEX代码,右边的辅音被忽略如果一组   并排辅音在SOUNDEX代码中具有相同的编号   除第一个外,它们被排除在外。附加规则可能导致   由SOUNDEX函数计算的值不同于   在早期兼容级别下计算的值。升级到之后   兼容级别110,您可能需要重建索引,堆,   或CHECK使用SOUNDEX函数的约束。更多   信息,请参阅SOUNDEX(Transact-SQL)

因此,您可能希望尝试遵循Microsoft的升级路径建议。此外,SOUNDEX是校对敏感的 - 您的2012 DB校对是否与2008校对相同?