Я ненавижу чувствительность к регистру в базах данных, но я разрабатываю для клиента, который его использует. Как включить эту опцию на моем SQL Server, так что я могу быть уверен, что я получил это право во всех моих запросах?
Как изменить SQL Server 2005 на чувствительность к регистру?
Ответ 1
Как насчет:
ALTER DATABASE database_name COLLATE collation_name
Смотрите BOL для списка параметров сортировки и выберите чувствительный к регистру, который наилучшим образом соответствует вашим потребностям (то есть тот, который использует ваш клиент).
Очевидно, что лучше попробовать сделать полную резервную копию своей базы данных, прежде чем пытаться это сделать. Я никогда лично не пытался использовать базу данных с другой сортировкой, чем сортировка по умолчанию сервера, поэтому я не знаю никаких "gotchas". Но если у вас есть хорошие резервные копии и протестируйте их в своей среде, прежде чем развертывать их для своего клиента, я не могу себе представить, что существует большой риск.
Ответ 2
На самом деле вам не нужно изменять сортировку по всей базе данных, если вы объявляете ее в таблице или столбцах, которые должны быть чувствительны к регистру. Фактически, вы можете фактически добавить его к отдельным операциям по мере необходимости.
SELECT name WHERE 'greg' = name COLLATE Latin1_GENERAL_CS_AS
Я знаю, вы сказали, что хотите, чтобы это применялось по всей базе данных. Но я упоминаю об этом, потому что в некоторых размещенных средах вы не можете управлять этим свойством, которое устанавливается при создании базы данных.
Ответ 3
Если у вас есть своя сортировка по умолчанию по умолчанию, вы можете столкнуться с проблемами при попытке присоединиться к своим таблицам с временными. Временные таблицы должны сортировать экземпляр (потому что это системные объекты), поэтому вам нужно использовать предложение 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(в этом примере) с сортировкой текущей БД.
Ответ 4
Вам нужно будет изменить сортировку базы данных. Вам также потребуется изменить сортировку столбцов и столбцов. Я верю, что вы можете найти script, если вы его запустите.