Sortierungen in verteilten Abfragen

SQL Server unterstützt mehrere Sortierungen. Die Sortierungen können für jede Spalte unterschiedlich sein, und jeder Zeichenwert besitzt eine zugehörige Sortierungseigenschaft. SQL Server interpretiert die Sortierungseigenschaft von Zeichendaten aus einer Remotedatenquelle und behandelt diese dementsprechend.

SQL Server verwendet die Sortierung von Remotedaten zu Vergleichs- und Ordnungsvorgängen für Zeichendaten (sowohl Unicode als auch Nicht-Unicode). Die Sortierungsinformationen für Remotezeichendaten werden auf unterschiedliche Art ermittelt, abhängig davon, ob die Datenquelle einer Instanz von SQL Server entspricht:

  • Der MicrosoftSQL Server Native Client-OLE DB-Anbieter meldet die Sortierung für jede von ihm zurückgegebene Spalte automatisch.

  • Bei Remotetabellen, die sich nicht in SQL Server befinden, von denen jedoch bekannt ist, dass die Sortierung einer der von SQL Server unterstützten entspricht, kann der Administrator die Standardsortierung der OLE DB-Datenquelle als Teil der Verbindungsserverdefinition angeben. SQL Server kann dann die Standardsortierung als die Sortierung für alle von diesem Verbindungsserver zurückgegebenen Spalten verwenden.

Nachdem SQL Server die Sortierung einer Remotezeichenspalte ermittelt hat, befolgt SQL Server die gleichen Regeln für das Konvertieren, Vergleichen und Bearbeiten von Remotetabellenspalten wie bei lokalen Spalten. Weitere Informationen zu den Regeln, die SQL Server auf Sortierungen und von SQL Server unterstützte Sortierungsnamen anwendet, finden Sie unter Arbeiten mit Sortierungen.

Wenn sich die Sortierung der Standardremotedatenbank von der Sortierung der aktuellen lokalen Datenbank unterscheidet, werden Remotezeichenfolgen als Unicode behandelt. Damit sichergestellt wird, dass die Zeichenfolgen einheitlich für alle Remoteserver behandelt werden, gehen Sie folgendermaßen vor:

  • Verwenden Sie das Unicode-Format, N**'string'**, um Zeichenfolgenliterale in verteilten Abfragen anzugeben.

  • Definieren Sie Verbindungsserver, die eine explizite Zieldatenbank besitzen, statt die Standardremotedatenbank zu verwenden. Diese Datenbank verwendet möglicherweise eine andere Sortierung.

Definieren von Optionen der Verbindungsserver

Die durch das Verwenden von sp_serveroption definierten Verbindungsserveroptionen steuern, ob und wie SQL Server Sortierungen von Verbindungsservern verwendet:

  • Die Option use remote collation gibt an, ob die Sortierung einer Remotespalte oder eines lokalen Servers verwendet wird. Wenn true festgelegt ist, wird für SQL Server-Datenquellen die Sortierung der Remotespalten und für Datenquellen, die keine SQL Server-Datenquellen sind, die in collation name angegebene Sortierung verwendet. Ist diese Option false, verwenden verteilte Abfragen immer die Standardsortierung der lokalen Serverinstanz, und collation name und die Sortierung der Remotespalten werden ignoriert.

  • Die Option collation name gibt den Namen der von der Remotedatenquelle verwendeten Sortierung an, wenn für use remote collation der Wert true festgelegt ist und es sich bei der Datenquelle nicht um eine SQL Server-Datenquelle handelt. Der Name muss eine von SQL Server unterstützte Sortierung sein. Verwenden Sie diese Option, wenn Sie auf eine andere OLE DB-Datenquelle als SQL Server zugreifen, deren Sortierungen jedoch mit einer der SQL Server-Sortierungen übereinstimmen. SQL Server-Datenquellen melden ihre Spaltensortierungen, und collation name wird bei Verbindungsservern, die auf SQL Server-Datenquellen verweisen, ignoriert.

    HinweisHinweis

    Das Verwenden der Verbindungsserveroptionen ist das einzige Verfahren zum Aktivieren der Verwendung von Remotesortierungen. Aus diesem Grund können erstellte Abfragen, die Ad-hoc-Namen verwenden, die von OPENROWSET und OPENDATASOURCE bereitgestellt werden, nicht die Sortierungsinformationen der Remotezeichendaten verwenden. Außerdem werden alle Verbindungsserver in SQL Server, Version 7.0, die auf SQL Server 2000 oder höher aktualisiert werden, auf use remote collation=false festgelegt.

Zusammenfassung der Optionseinstellungen

Die folgende Tabelle fasst zusammen, wie SQL Server die Sortierung bestimmt, die für jede Spalte verwendet wird, wenn use remote collation auf true (oder on) festgelegt wurde.

Verbindungsservertyp

Sortierungsname nicht festgelegt

Sortierungsname festgelegt (auf CollX)

SQL Server

Tatsächliche Sortierung der Remotespalte.

Tatsächliche Sortierung der Remotespalte.

Sonstige

Standardsortierung einer lokalen Instanz von SQL Server.

CollX

Die folgende Tabelle fasst zusammen, wie SQL Server die Sortierung bestimmt, die für jede Spalte verwendet wird, wenn use remote collation auf false (oder off) festgelegt wurde.

Verbindungsservertyp

Sortierungsname nicht festgelegt

Sortierungsname festgelegt (auf CollX)

SQL Server

Standardsortierung einer lokalen Instanz von SQL Server.

Standardsortierung einer lokalen Instanz von SQL Server.

Sonstige

Standardsortierung einer lokalen Instanz von SQL Server.

Standardsortierung einer lokalen Instanz von SQL Server.