Как изменить SQL Server 2005 на регистр?
Я ненавижу чувствительность к регистру в базах данных, но я разрабатываю для клиента, который его использует. Как я могу включить эту опцию на моем SQL Server, чтобы быть уверенным, что я правильно понял дело во всех моих запросах?
4 ответа
Как насчет:
ALTER DATABASE database_name COLLATE collation_name
См. BOL, чтобы получить список параметров сортировки и выбрать регистрозависимый вариант, который наилучшим образом соответствует вашим потребностям (т. Е. Тот, который использует ваш клиент).
Очевидно, что это хорошая идея сделать полную резервную копию вашей базы данных, прежде чем попробовать это. Лично я никогда не пытался использовать базу данных с сопоставлением, отличным от сопоставления по умолчанию для сервера, поэтому я не знаю ни одной "ошибки". Но если у вас есть хорошие резервные копии и вы тестируете их в своей среде, прежде чем развертывать их на своем клиенте, я не могу себе представить, что существует большой риск.
На самом деле вам не нужно изменять параметры сортировки для всей базы данных, если вы объявляете ее для таблицы или столбцов, которые должны учитывать регистр символов. Фактически, вы можете добавить его к отдельным операциям по мере необходимости.
ВЫБЕРИТЕ имя ГДЕ 'greg' = имя COLLATE Latin1_GENERAL_CS_AS
Я знаю, вы сказали, что хотите, чтобы это применялось ко всей базе данных. Но я упоминаю об этом, потому что в определенных размещенных средах вы не можете управлять этим свойством, которое устанавливается при создании базы данных.
Если у вас есть БД, в которой сопоставление отличается от значения по умолчанию для экземпляра, вы можете столкнуться с проблемами, когда попытаетесь объединить свои таблицы с временными. Временные таблицы должны быть сопоставлены с экземпляром (потому что это системные объекты), поэтому вам нужно использовать предложение COLLATE database_default в ваших объединениях.
select temp.A, table.B
from #TEMPORARY_TABLE temp inner join table
on temp.X COLLATE database_default = table.Y
Это вынуждает сопоставление temp.X (в этом примере) сопоставлять текущую базу данных.
Вам придется изменить параметры сортировки базы данных. Вам также необходимо изменить параметры сортировки на уровне таблицы и столбца. Я полагаю, вы можете найти сценарий там, если вы Google.