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

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

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

  • Поставщик OLE DB для собственного клиента Microsoft SQL Server автоматически создает отчеты о параметрах сортировки для каждого столбца, возвращаемого поставщиком.

  • Для удаленных таблиц, которые не находятся в SQL Server, но имеют параметры сортировки, поддерживаемые SQL Server, администратор может указать заданные по умолчанию параметры сортировки источника данных OLE DB в качестве части определения связанного сервера. SQL Server затем может использовать эти заданные по умолчанию параметры сортировки как параметры сортировки для всех столбцов, возвращаемых со связанного сервера.

После того как SQL Server определит параметры сортировки удаленного символьного столбца, SQL Server следует тем же правилам преобразования, сравнения и манипулирования для удаленных столбцов таблицы, которые существуют для локальных столбцов. Дополнительные сведения о правилах, которые SQL Server применяет к параметрам сортировки и именам параметров сортировки, поддерживаемым SQL Server, см. в разделе Работа с параметрами сортировки.

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

  • используйте формат Юникода, N**'string'**, для указания строковых литералов в распределенных запросах;

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

Определение параметров связанного сервера

Следующие параметры связанного сервера, заданные при помощи процедуры sp_serveroption, управляют тем, использует ли SQL Server параметры сортировки связанных серверов, и как это происходит.

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

  • Параметр имя параметров сортировки указывает имя параметров сортировки, используемых удаленным источником данных, если параметр использовать удаленные параметры сортировки имеет значение true, а источник данных не является источником данных SQL Server. Это имя должно быть именем параметров сортировки, поддерживаемых SQL Server. Этот параметр следует использовать при доступе к источнику данных OLE DB, отличному от SQL Server, параметры сортировки которого соответствуют параметрам сортировки SQL Server. Источники данных SQL Server представляют отчет о параметрах сортировки своих столбцов, а параметр имя параметров сортировки игнорируется для связанных серверов, которые ссылаются на источники данных SQL Server.

    ПримечаниеПримечание

    Использование параметров связанного сервера является единственным способом использования удаленных параметров сортировки. Следовательно, запросы, использующие нерегламентированные имена, предоставляемые функциями OPENROWSET и OPENDATASOURCE, не могут использовать сведения о параметрах сортировки удаленных символьных данных. При необходимости для всех связанных серверов в SQL Server версии 7.0, обновленных до версии SQL Server 2000 или более поздней, значение параметра использовать удаленные параметры сортировки = false.

Сводка настроек параметров

В следующей таблицы представлено описание того, как SQL Server определяет параметры сортировки, используемые для каждого столбца, если параметр использовать удаленные параметры сортировки установлен в значение true (или on).

Тип связанного сервера

Имя параметров сортировки не задано

Имя параметров сортировки задано (в CollX)

SQL Server

Текущие параметры сортировки удаленного столбца.

Текущие параметры сортировки удаленного столбца.

Другие

Заданные по умолчанию параметры сортировки локального экземпляра SQL Server.

CollX

В следующей таблицы представлено описание того, как SQL Server определяет параметры сортировки, используемый для каждого столбца, если параметр использовать удаленные параметры сортировки установлен в значение false (или off).

Тип связанного сервера

Имя параметров сортировки не задано

Имя параметров сортировки задано (в CollX)

SQL Server

Заданные по умолчанию параметры сортировки локального экземпляра SQL Server.

Заданные по умолчанию параметры сортировки локального экземпляра SQL Server.

Другие

Заданные по умолчанию параметры сортировки локального экземпляра SQL Server.

Заданные по умолчанию параметры сортировки локального экземпляра SQL Server.