Поделиться через


Задание и изменение параметров сортировки базы данных

Область применения: 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 DATABASEALTER 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. Укажите параметры сортировки базы данных и параметры сортировки каталога во время СОЗДАНИЯ БАЗЫ ДАННЫХ.