Задание и изменение параметров сортировки базы данных
Область применения: SQL Server Управляемый экземпляр SQL Azure
В этой статье описывается, как задать или изменить параметры сортировки базы данных с помощью SQL Server Management Studio (SSMS) или Transact-SQL.
Если параметры сортировки базы данных не заданы, используется параметры сортировки сервера.
Рекомендации
Поддерживаемые имена параметров сортировки можно найти в имени параметров сортировки Windows и имени сортировки SQL Server. Кроме того, можно использовать системную функцию sys.fn_helpcollations .
При изменении параметров сортировки базы данных изменяется следующее:
Все столбцы типа char, varchar, text, nchar, nvarcharили ntext в системных таблицах заменяются новым параметром сортировки.
Все существующие параметры типа char, varchar, text, nchar, nvarcharили ntext и возвращаемые скалярные значения для хранимых процедур и определяемых пользователем функций заменяются новым параметром сортировки.
Системные типы данных char, varchar, text, nchar, nvarcharили ntext и все определяемые пользователем типы данных, основанные на этих системных типах данных, заменяются новым параметром сортировки по умолчанию.
Вы можете изменить параметры сортировки любых новых объектов, созданных в пользовательской базе данных, с помощью предложения COLLATE
инструкции ALTER DATABASE. Эта инструкция не изменяет параметры сортировки столбцов в любых существующих пользовательских таблицах. Они могут быть изменены с помощью предложения COLLATE
инструкции ALTER TABLE.
Разрешения
Чтобы создать новую базу данных, вам потребуется CREATE DATABASE
разрешение в master
базе данных или CREATE ANY DATABASE
ALTER ANY DATABASE
разрешение.
Чтобы изменить параметры сортировки существующей базы данных, необходимо ALTER
разрешение на базу данных.
Задание и изменение параметров сортировки базы данных
Можно задать или изменить параметры сортировки базы данных с помощью SQL Server Management Studio (SSMS) или Transact-SQL (T-SQL).
Можно указать параметры сортировки для новой базы данных или обновить параметры сортировки для существующей базы данных с помощью SQL Server Management Studio (SSMS).
В СРЕДЕ SQL Server Management Studio откройте обозреватель объектов, подключитесь к экземпляру ядро СУБД SQL Server, разверните этот экземпляр и разверните базы данных:
- Для новой базы данных: щелкните правой кнопкой мыши базы данных и выберите "Создать базу данных". Если параметры сортировки по умолчанию не нужны, выберите страницу "Параметры" и выберите параметры в раскрывающемся списке сортировки.
- Для существующей базы данных щелкните правой кнопкой мыши нужную базу данных и выберите пункт "Свойства". Выберите страницу "Параметры" и выберите параметры в раскрывающемся списке сортировки.
Данные после изменения сортировки
Внимание
Изменение параметров сортировки базы данных или отдельных столбцов не изменяет базовых данных, уже хранящихся в существующих таблицах. Если приложение явным образом не обрабатывает преобразование и сравнение данных с различными параметрами сортировки, рекомендуется перевести существующие в базе данных данные в новые параметры сортировки. Это устраняет риск, что приложения могут неправильно изменять данные, что приводит к возможному неправильному результату или автоматической потере данных.
При изменении сортировки базы данных только новые таблицы наследуют новые параметры сортировки базы данных по умолчанию. Существует несколько способов преобразования существующих данных в новые параметры сортировки.
Преобразование данных на месте. Сведения о преобразовании параметров сортировки для столбца в существующей таблице см. в разделе Задание или изменение параметров сортировки столбца. Эта операция легко реализуется, но может стать блокирующей проблемой для больших таблиц и занятых приложений. Приведем следующий пример преобразования столбца
MyString
в новые параметры сортировки на месте.ALTER TABLE dbo.MyTable ALTER COLUMN MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8;
Копирование данных в новые таблицы, в которых используются новые параметры сортировки, и замена исходных таблиц в той же базе данных. Создайте новую таблицу в текущей базе данных, которая будет наследовать параметры сортировки базы данных, скопируйте данные из старой таблицы в новую, удалите исходную таблицу и переименуйте новую таблицу в имя исходной таблицы. Это быстрая операция, чем преобразование на месте, но может стать проблемой при обработке сложных схем с зависимостями, такими как ограничения внешнего ключа, ограничения первичного ключа и триггеры. Кроме того, перед окончательным удалением потребуется финальная синхронизация исходной и новой таблиц в случае, если данные будут продолжать изменяться приложениями. Приведем следующий пример преобразования "копирование и замена" столбца
MyString
в новые параметры сортировки.CREATE TABLE dbo.MyTable2 (MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8); INSERT INTO dbo.MyTable2 SELECT * FROM dbo.MyTable; DROP TABLE dbo.MyTable; EXEC sp_rename 'dbo.MyTable2', 'dbo.MyTable';
Копирование данных в новую базу данных, в которой используются новые параметры сортировки, и замена исходной базы данных. Создайте базу данных с помощью новой сортировки и передайте данные из исходной базы данных с помощью таких средств, как Службы Integration Services или мастер импорта и экспорта в SQL Server Management Studio. Это более простой подход для сложных схем. Здесь также перед окончательным удалением потребуется финальная синхронизация исходной и новой баз данных в случае, если данные будут продолжать изменяться приложениями.
Ограничения
Параметры сортировки Windows только для Юникода могут использоваться лишь с предложением COLLATE для применения параметров сортировки к данным типов nchar, nvarchar и ntext на уровне столбца и на уровне выражения. Их нельзя использовать с предложением COLLATE для изменения сортировки экземпляра базы данных или сервера.
Если указанный параметр сортировки или параметры сортировки, используемые объектом, на который ссылается ссылка, использует кодовую страницу, которая не поддерживается Windows, ядро СУБД отображает ошибку.
Параметры сортировки на уровне сервера в Управляемый экземпляр SQL Azure могут быть указаны при создании экземпляра и не могут быть изменены позже. Подробнее см. в статье Задание или изменение параметров сортировки сервера.
Внимание
Инструкция ALTER DATABASE COLLATE
не поддерживается в Базе данных SQL Azure. Укажите параметры сортировки базы данных и параметры сортировки каталога во время СОЗДАНИЯ БАЗЫ ДАННЫХ.
Связанный контент
- Поддержка параметров сортировки и Юникода
- sys.fn_helpcollations (Transact-SQL)
- sys.databases (Transact-SQL)
- Имя параметров сортировки SQL Server (Transact-SQL)
- Имя сортировки Windows (Transact-SQL)
- COLLATE (Transact-SQL)
- Приоритет сортировки
- CREATE TABLE (Transact-SQL)
- CREATE DATABASE
- Инструкция ALTER TABLE (Transact-SQL)
- ALTER DATABASE (Transact-SQL)