Недавно я установил SQL Server 2008, и я выбрал сортировку как чувствительную к регистру. Я хочу сделать регистр нечувствительным для всего экземпляра (не для базы данных в этом случае). Если я изменил сортировку, это повлияет на любые существующие базы данных? если да, то каким образом?
Изменение сортировки SQL Server на регистр, нечувствительный к регистру с учетом регистра?
Ответ 1
Вам нужно снова запустить установку, чтобы восстановить базу данных master
с новой сортировкой. Вы не можете изменить всю сортировку сервера любым другим способом.
См:
- MSDN: настройка и изменение настройки сервера
- Как изменить настройку базы данных или сервера (в середине страницы)
Обновление:, если вы хотите изменить сортировку базы данных, вы можете получить текущую сортировку с помощью этого фрагмента T-SQL:
SELECT name, collation_name
FROM sys.databases
WHERE name = 'test2' -- put your database name here
Это даст значение, подобное:
Latin1_General_CI_AS
_CI
означает "нечувствительность к регистру" - если вы хотите с учетом регистра, используйте _CS
на своем месте:
Latin1_General_CS_AS
Итак, ваша команда T-SQL будет:
ALTER DATABASE test2 -- put your database name here
COLLATE Latin1_General_CS_AS -- replace with whatever collation you need
Вы можете получить список всех доступных сопоставлений на сервере, используя:
SELECT * FROM ::fn_helpcollations()
Вы можете увидеть текущую сортировку сервера, используя:
SELECT SERVERPROPERTY ('Collation')
Ответ 2
Вы можете это сделать, но изменения повлияют на новые данные, которые вставлены в базу данных. В долгосрочной перспективе следуйте изложенным выше.
Также есть определенные трюки, которые вы можете переопределить для сортировки, такие как параметры хранимых процедур или функций, типы данных псевдонимов и переменные, которым присваивается стандартная сортировка базы данных. Чтобы изменить сортировку типа псевдонима, вы должны удалить псевдоним и заново создать его.
Вы можете переопределить стандартную сортировку строковой строки с помощью предложения COLLATE. Если вы не укажете сортировку, литералу присваивается стандартная сортировка базы данных. Вы можете использовать DATABASEPROPERTYEX, чтобы найти текущую сортировку базы данных.
Вы можете переопределить сортировку сервера, базы данных или столбцов, указав сопоставление в предложении ORDER BY инструкции SELECT.