Richtlinien für die Verwendung von verteilten Abfragen

Aktualisiert: 17. Juli 2006

Wenn der Anbieter die erforderlichen OLE DB-Schnittstellen unterstützt, sind alle im Folgenden genannten Transact-SQL-Anweisungsklassen zugelassen.

Transact-SQL-Anweisungen

Die folgende Liste enthält die Teilmengen der Transact-SQL-Sprache, die für Remotetabellen zulässig sind, auf die über Verbindungsservernamen oder über Ad-hoc-Namen zugegriffen wird:

  • Alle Abfragen in der Standardform SELECT select_list FROM-Klausel WHERE-Klausel sind zulässig. Die INTO new_table_name-Klausel in SELECT-Anweisungen ist nicht zulässig, wenn new_table_name auf eine Remotetabelle verweist.
  • In SELECT-, INSERT-, UPDATE- und DELETE-Anweisungen können Spalten in Remotetabellen nicht mit einem einteiligen oder vierteiligen Tabellennamen gekennzeichnet werden. Den Remotetabellen sollte in der FROM-Klausel ein Alias zugeordnet werden, und der Aliasname sollte zur Kennzeichnung des Spaltennamens verwendet werden.
  • Tabellen, die xml-Spalten enthalten, können nicht abgefragt werden, selbst wenn mit der Abfrage auf Nicht-xml-Spalten der Tabelle zugegriffen wird.
  • Wenn eine LOB-Spalte (Large OBject) einer Remotetabelle als Element in der select_list einer SELECT-Anweisung angegeben wird, darf die SELECT-Anweisung keine ORDER BY-Klausel enthalten.
  • Die Prädikate IS NULL und IS NOT NULL können nicht auf LOB-Spalten in einer Remotetabelle verweisen.
  • GROUP BY ALL ist in einer verteilten Abfrage nicht zulässig, wenn die Abfrage auch eine WHERE-Klausel enthält. GROUP BY ohne die Angabe von ALL wird unterstützt.
  • INSERT-Anweisungen können auf Remotetabellen angewendet werden, sofern der Anbieter die OLE DB-Anforderungen für INSERT-Anweisungen erfüllt. Weitere Informationen finden Sie unter INSERT-Anforderungen für OLE DB-Anbieter.
  • NULL-Konstanten können nicht über eine verteilte Abfrage in eine timestamp-Spalte eingefügt werden.
  • $IDENTITY und $ROWGUIDCOL werden für verteilte Abfragen nicht unterstützt. Explizite Werte können in Remotetabellen nicht in identity-Spalten eingefügt werden.
  • UPDATE- und DELETE-Anweisungen können auf Remotetabellen angewendet werden, sofern der Anbieter die OLE DB-Schnittstellenanforderungen für die angegebene Tabelle erfüllt. Weitere Informationen finden Sie unter UPDATE- und DELETE-Anforderungen für OLE DB-Anbieter.
  • Eine Remotetabelle kann durch einen für eine verteilte Abfrage definierten Cursor aktualisiert oder gelöscht werden, wenn die Remotetabelle in der UPDATE- oder DELETE-Anweisung angegeben ist (UPDATE oder DELETE remote_table WHERE CURRENT OF cursor_name), sofern der Anbieter die Bedingungen für Aktualisierbarkeit der Remotetabelle erfüllt. Weitere Informationen finden Sie unter Verwenden von Cursorn mit verteilten Abfragen.
  • READTEXT-, WRITETEXT- und UPDATETEXT-Anweisungen können nicht auf Remotetabellen angewendet werden.
  • Auf Spalten mit LOB-Datentypen (Large Object, z. B. text, ntext oder image) kann bei Aktualisierungs- oder Einfügevorgängen nicht verwiesen werden, wenn der Anbieter außerhalb des SQL Server-Prozesses instanziiert wird; die Anbieteroption AllowInProcess entspricht 0. Weitere Informationen finden Sie unter Konfigurieren von OLE DB-Anbietern für verteilte Abfragen.
  • DDL-Anweisungen (Data Definition Language, Datendefinitionssprache) wie CREATE, ALTER oder DROP sind für Verbindungsserver nicht zulässig.
  • Die EXECUTE-Anweisung, mit der ein Pass-Through-Befehl angegeben wird, wird für Verbindungsserver unterstützt. Mit dieser Anweisung können gespeicherte Prozeduren für andere Anbieter als SQL Server ausgeführt werden.
  • Es sind keine anderen Operationen oder Anweisungen auf Datenbankebene für Verbindungsserver zulässig.

Weitere Richtlinien

Es gelten folgende zusätzliche Einschränkungen und Richtlinien:

  • STATIC- oder INSENSITIVE-Cursor können auf Remotetabellen verweisen. Keysetgesteuerte Cursor können auf Remotetabellen verweisen, wenn der OLE DB-Anbieter bestimmte Anforderungen erfüllt. Weitere Informationen zu diesen Anforderungen finden Sie unter Anforderungen für OLE DB-Anbieter in Bezug auf die Verwendung keysetgesteuerter Cursor. Es können keine anderen Cursortypen auf eine Remotetabelle verweisen.
  • Gespeicherte Prozeduren werden nur für SQL Server-Datenquellen unterstützt.
  • Die Optionen ANSI_NULLS und ANSI_WARNINGS müssen für eine Verbindung auf ON festgelegt sein, damit verteilte Abfragen ausgeführt werden können. Weitere Informationen finden Sie unter SET ANSI_DEFAULTS (Transact-SQL).

Siehe auch

Konzepte

Verwenden von Transaktionen mit verteilten Abfragen
Datentypzuordnung mit verteilten Abfragen
Verteilte Abfragen

Andere Ressourcen

SELECT (Transact-SQL)
EXECUTE (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

17. Juli 2006

Neuer Inhalt:
  • Der Eintrag mit der Aussage, dass Tabellen mit xml-Spalten nicht abgefragt werden können, wurde hinzugefügt.