(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

OPENQUERY (Transact-SQL)

Führt die angegebene Pass-Through-Abfrage auf dem angegebenen Verbindungsserver aus. Bei diesem Server handelt es sich um eine OLE DB-Datenquelle. Auf OPENQUERY kann in der FROM-Klausel einer Abfrage so verwiesen werden, als ob es ein Tabellenname wäre. Auf OPENQUERY kann auch als Zieltabelle einer INSERT-, UPDATE- oder DELETE-Anweisung verwiesen werden. Dies hängt von den Funktionen des OLE DB-Anbieters ab. Obwohl die Abfrage möglicherweise mehrere Resultsets zurückgibt, gibt OPENQUERY nur das erste zurück.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

OPENQUERY ( linked_server ,'query' )

linked_server

Ein Bezeichner, der den Namen des Verbindungsservers darstellt.

' query '

Ist die Zeichenfolge der Abfrage, die auf dem Verbindungsserver ausgeführt wird. Die maximale Länge der Zeichenfolge beträgt 8 KB.

Für die Argumente von OPENQUERY können keine Variablen verwendet werden.

Mit OPENQUERY können keine erweiterten gespeicherten Prozeduren für einen Verbindungsserver ausgeführt werden. Eine erweiterte gespeicherte Prozedur kann jedoch auf einem Verbindungsserver ausgeführt werden, wenn der vierteilige Name verwendet wird. Beispiel:

EXEC SeattleSales.master.dbo.xp_msver

Jeder Aufruf von OPENDATASOURCE, OPENQUERY oder OPENROWSET in der FROM-Klausel wird einzeln und unabhängig von anderen Aufrufen dieser Funktionen ausgewertet, die als Ziel des Updates verwendet werden, auch wenn für die beiden Aufrufe identische Argumente angegeben werden. Insbesondere haben Filter- oder Joinbedingungen, die auf das Ergebnis eines dieser Aufrufe angewendet werden, keine Auswirkungen auf die Ergebnisse des jeweils anderen.

Jeder beliebige Benutzer kann OPENQUERY ausführen. Die Berechtigungen, die für die Verbindung mit dem Remoteserver verwendet werden, werden aus den Einstellungen für den Verbindungsserver abgerufen.

A.Ausführen einer UPDATE-Pass-Through-Abfrage

Im folgenden Beispiel wird eine UPDATE-Pass-Through-Abfrage für den in Beispiel A erstellten Verbindungsserver verwendet.

UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') 
SET name = 'ADifferentName';

B.Ausführen einer INSERT-Pass-Through-Abfrage

Im folgenden Beispiel wird eine INSERT-Pass-Through-Abfrage für den in Beispiel A erstellten Verbindungsserver verwendet.

INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');

C.Ausführen einer DELETE-Pass-Through-Abfrage

Im folgenden Beispiel wird eine DELETE-Pass-Through-Abfrage verwendet, um die in Beispiel C eingefügte Zeile zu löschen.

DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft