2015-03-04 3 views
1

Следующие заявления возвращают различные SOUNDEX значения в SQL Server 2012 в то время как они производят же значение в SQL Server 2008:функция SOUNDEX кажется сломанной в SQL Server 2012

PRINT SOUNDEX('BAKHSHI') --B200 

PRINT SOUNDEX('Bakhshi') --B220 

Кто-нибудь еще был этот вопрос в SQL Server 2012 и знает, как обойти это?

ответ

1

Согласно https://msdn.microsoft.com/en-us/library/bb510680.aspx:

функция SOUNDEX реализует следующие правила: Если верхний регистр Н или верхнего регистра W отдельных двух согласных звуков, которые имеют один и тот же номер в SOUNDEX коде , согласного к right игнорируется Если набор из бок о бок согласных имеют одинаковое число в коде SOUNDEX, все из них исключаются, кроме первого. Дополнительные правила могут приводить к тому, что значения , рассчитанные функцией SOUNDEX, отличаются от значений , вычисленных в соответствии с более ранними уровнями совместимости. После обновления до уровня уровня совместимости вам может потребоваться перестроить индексы, кучи, или ограничения CHECK, которые используют функцию SOUNDEX. Для получения более информации см. SOUNDEX (Transact-SQL)

Таким образом, вы можете попробовать следовать рекомендациям Microsoft по пути обновления. Кроме того, SOUNDEX чувствителен к сортировке - ваши кодовые таблицы 2012 года совпадают с вашими сопоставлениями 2008 года?

+0

Спасибо, это именно то, что мне нужно было знать –

 Смежные вопросы

  • Нет связанных вопросов^_^