Изменение сопоставления SQL Server к нечувствительному к регистру от чувствительного к регистру?

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

36
задан marc_s 21 July 2010 в 05:05
поделиться

2 ответа

По сути, вам нужно снова запустить установку, чтобы пересобрать базу данных 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')
62
ответ дан 27 November 2019 в 05:52
поделиться

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

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

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

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

2
ответ дан 27 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: