Можете ли вы установить параметры сортировки переменной T-SQL? - PullRequest
1 голос
/ 10 июня 2019

Я искал все выше и ниже, но не могу найти ответ. Можете ли вы установить параметры сортировки для переменной? Согласно документации MS кажется, что это возможно только в SQL Azure:

- Синтаксис для хранилища данных SQL Azure и хранилища параллельных данных
DECLARE
{{@local_variable [AS] data_type} [= значение [COLLATE]]} [, ... n]

В настоящее время я должен сделать это:

DECLARE @Test nvarchar(10) = N'Crud';

IF ( @Test = N'Crud' COLLATE Latin1_General_CS_AI )
    Print N'Crud';
IF ( @Test = N'cRud' COLLATE Latin1_General_CS_AI )
    Print N'cRud';
IF ( @Test = N'crUd' COLLATE Latin1_General_CS_AI )
    Print N'crUd';
IF ( @Test = N'cruD' COLLATE Latin1_General_CS_AI )
    Print N'cruD';

Когда я хотел бы сделать следующее:

DECLARE @Test nvarchar(10) = N'Crud' COLLATE Latin1_General_CS_AI;

IF ( @Test = N'Crud' )
    Print N'Crud';
IF ( @Test = N'cRud' )
    Print N'cRud';
IF ( @Test = N'crUd' )
    Print N'crUd';
IF ( @Test = N'cruD' )
    Print N'cruD';

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

Очень ценится.

1 Ответ

3 голосов
/ 10 июня 2019

Ну, вы правильно догадались.
В большинстве систем SQL Server (имеется в виду, не включая хранилище данных SQL Azure и хранилище параллельных данных) параметры сортировки можно установить на четырех уровнях:

  1. Параметры сортировки по умолчанию экземпляра SQL Server :

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

  2. Параметры сортировки по умолчанию для конкретной базы данных :

    Можно использоватьпредложение COLLATE оператора CREATE DATABASE или ALTER DATABASE, чтобы указать параметры сортировки базы данных по умолчанию.Вы также можете указать параметры сортировки при создании базы данных с помощью SQL Server Management Studio.Если вы не укажете параметры сортировки, для базы данных будет назначена сортировка по умолчанию для экземпляра SQL Server.

  3. Можно установить параметры сортировки для столбца таблицы:

    Вы можете указать параметры сортировки для каждого столбца строки символов, используя предложение COLLATE оператора CREATE TABLE или ALTER TABLE .Вы также можете указать параметры сортировки при создании таблицы с помощью SQL Server Management Studio.Если вы не укажете параметры сортировки, столбцу будет назначен параметр сортировки базы данных по умолчанию.

  4. Параметры сортировки для конкретного выражения можно установить с помощью * 1039.* предложение:

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

Так что да, за исключением хранилища данных SQL Azure и хранилища параллельных данных, нельзя установить сопоставление длялокальная скалярная переменная.

...