Изменение правил сопоставления (collation) и порядка сортировки в MS SQL 2005

Сопоставление (collation) в SQL — это ряд правил, согласно которым сортируются и сравниваются данные. Эти правила определяют порядок сортировки символьных данных, в зависимости от регистра, надстрочных знаков (акцента), символьных типов Kana, ширины символов.

  1. Регистр
    Если «A» и «a»,» B» и «b», и т.д. считаются одинаковыми, это называется независимостью от регистра. Компьютер считает «A» и «a» различными символами, поскольку им соответствуют разные коды ASCII (ASCII-значение буквы «A» равно 65, в то время как «a» — 97).
  2. Надстрочные знаки (акцент)
    Если «a» и «á», «o» и «ó» считаются одинаковыми, это называется нечувствительностью к акценту. Компьютер считает «a» и «á» разными, поскольку для них используются различные коды ASCII (ASCII значение «a» равно 97, а символа «á» — 225).
  3. Символьные типы Kana
    Когда японские kana символы, Hiragana и Katakana, считаются разными, это называют Kana чувствительностью.
  4. Ширина символов
    Когда однобайтный символ (полуширина) и тот же самый символ, представленный двумя байтами (полная ширина), считаются разными, это называется чувствительностью к ширине.

В MS SQL Server 2005 правила сопоставления можно задать на уровне:

  • Сервера
  • Базы данных
  • Столбца
  • Выражения

На уровне сервера правила сопоставления задаются во время первоначальной установки SQL сервера. Выбранное правило сопоставления применяется для системных баз данных. После того как правило сопоставления применено к любому объекту отличному от базы данных или столбца, вы не сможете изменить сопоставление, кроме как с помощью удаления и пересоздания объекта.

В SQL Server 2000 можно было изменить сопоставление на уровне сервера без переустановки сервера. Для этого надо запустить утилиту Rebuild Master (RebuildM.exe), которая расположена в папке Program Files\Microsoft SQL Server\80\Tools\BINN.

В SQL Server 2005 утилита RebuildM.exe не поддерживается. Поэтому для изменения сопоставления вам понадобится перестроить системную базу данных master с помощью параметра REBUILDDATABASE в Setup.exe. Для этого сделайте резервную копию БД, отсоедините все пользовательские БД и выполните:

start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=Cyrillic_General_CI_AS

INSTANCENAME — имя экземпляра SQL
SAPWD — пароль пользователя sa
SQLCOLLATION
— новое сопоставление

Пожалуйста, оцените статью:
(всего оценок: 7, средняя: 5,00 из 5)