Менять ли сортировку SQL Server на регистр без учета регистра? - PullRequest
35 голосов
/ 21 июля 2010

Я недавно установил SQL Server 2008 и выбрал параметры сортировки с учетом регистра. Я хочу сделать это без учета регистра для всего экземпляра (не для базы данных в этом случае). Если я изменяю параметры сортировки, это влияет на существующие базы данных? если да, то каким образом?

Ответы [ 2 ]

60 голосов
/ 21 июля 2010

По сути, вам нужно снова запустить установку, чтобы перестроить базу данных master с новым сопоставлением.Вы не можете изменить параметры сортировки всего сервера любым другим способом.

См .:

Обновление: Если вы хотите изменить параметры сортировки базы данных, вы можете получить текущую параметры сортировки, используя этот фрагмент 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 голосов
/ 21 июля 2010

Вы можете сделать это, но изменения повлияют на новые данные, которые вставляются в базу данных. В долгосрочной перспективе следуйте указаниям выше.

Также есть некоторые приемы, которые вы можете переопределить, например параметры хранимых процедур или функций, типы данных псевдонимов и переменные назначаются для параметров сортировки базы данных по умолчанию. Чтобы изменить параметры сортировки типа псевдонима, необходимо удалить псевдоним и создать его заново.

Вы можете переопределить сопоставление по умолчанию для литеральной строки, используя предложение COLLATE. Если вы не укажете параметры сортировки, для литерала будет назначена сортировка по умолчанию для базы данных. Вы можете использовать DATABASEPROPERTYEX, чтобы найти текущую сортировку базы данных.

Вы можете переопределить параметры сортировки сервера, базы данных или столбца, указав параметры сортировки в предложении ORDER BY инструкции SELECT.

...