Verwenden von Pass-Through-Abfragen als Tabellen
SQL Server sendet Pass-Through-Abfragen als nicht interpretierte Abfragezeichenfolgen an eine OLE DB-Datenquelle.Die Abfrage muss in einer von der OLE DB-Datenquelle unterstützten Syntax vorliegen. Eine Transact-SQL-Anweisung verwendet die Ergebnisse einer Pass-Through-Abfrage, als handele es sich um einen normalen Tabellenverweis.
Es gibt folgende Möglichkeiten, ein Rowset von einem OLE DB-Anbieter zu generieren:
Verweisen auf ein Objekt in der Datenquelle, das der Anbieter als tabellarisches Rowset bereitstellen kann. Alle Anbieter unterstützen diese Möglichkeit.
Senden eines Befehls an den Anbieter, der vom Anbieter verarbeitet werden kann und dessen Ergebnisse als Rowset bereitgestellt werden können. Diese Möglichkeit setzt voraus, dass der Anbieter das OLE DB-Command-Objekt und alle zugehörigen obligatorischen Schnittstellen unterstützt.
Wenn ein Anbieter das Command-Objekt unterstützt, können diese Transact-SQL-Funktionen zum Senden von Befehlen (so genannten Pass-Through-Abfragen) an den Anbieter verwendet werden:
OPENQUERY sendet mithilfe eines Verbindungsservernamens eine Befehlszeichenfolge an eine OLE DB-Datenquelle.
OPENROWSET und OPENDATASOURCE unterstützen das Senden einer Befehlszeichenfolge an eine OLE DB-Datenquelle. Auf das sich ergebende Rowset kann mit einem Ad-hoc-Namen verwiesen werden.
OPENROWSET und OPENQUERY unterstützen Pass-Through-Abfragen, deren Abfragezeichenfolge den Aufruf einer gespeicherten Prozedur enthalten, nur dann, wenn die Abfrage eines der folgenden Merkmale besitzt:
Sie führt eine einzige statische SELECT-Anweisung aus.
Sie verwendet keine dynamischen EXECUTE-Anweisungen.
Sie führt keine Datenänderungsvorgänge durch.
Die OLE DB-Spezifikation definiert keine einheitliche, von allen OLE DB-Anbietern zu verwendende Befehlssprache. OLE DB-Anbieter können jede Befehlssprache unterstützen, die im Zusammenhang mit den von ihnen bereitgestellten Daten steht. OLE DB-Anbieter, die die Daten in relationalen Datenbanken bereitstellen, unterstützen in der Regel die Sprache SQL. Andere Anbietertypen, wie beispielsweise Anbieter, die die Daten in einer E-Mail-Datei oder in einem Netzwerkverzeichnis bereitstellen, unterstützen im Allgemeinen eine andere Sprache.