Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik: :SQL Server
Azure SQL Managed Instance
Végrehajtja a megadott átmenő lekérdezést a megadott társított kiszolgálón. Ez a kiszolgáló egy OLE DB-adatforrás. Az OPENQUERY a lekérdezés FROM záradékában úgy hivatkozhat rá, mintha táblanév lenne. AZ OPENQUERY az INSERT, UPDATE vagy DELETE utasítás céltáblájaként is hivatkozhat. Ez az OLE DB-szolgáltató képességeire vonatkozik. Bár a lekérdezés több eredményhalmazt is visszaadhat, az OPENQUERY csak az elsőt adja vissza.
Transact-SQL szintaxis konvenciók
Szemantika
OPENQUERY ( linked_server ,'query' )
Arguments
linked_server
A csatolt kiszolgáló nevét jelképező azonosító.
"lekérdezés"
A lekérdezési sztring a csatolt kiszolgálón van végrehajtva. A sztring maximális hossza 8 KB.
Megjegyzések
Az OPENQUERY nem fogad el változókat az argumentumaihoz.
Az OPENQUERY nem használható kiterjesztett tárolt eljárások végrehajtására egy csatolt kiszolgálón. A kiterjesztett tárolt eljárás azonban négyrészes névvel végrehajtható egy csatolt kiszolgálón. Például:
EXEC SeattleSales.master.dbo.xp_msver
A FROM záradékban található OPENDATASOURCE, OPENQUERY vagy OPENROWSET hívásokat a rendszer a frissítés céljaként használt függvények hívásától függetlenül, függetlenül értékeli, még akkor is, ha a két híváshoz azonos argumentumok vannak megadva. Az egyik ilyen hívás eredményére alkalmazott szűrési vagy illesztési feltételeknek nincs hatása a másik eredményére.
Jogosultságok
Bármely felhasználó végrehajthatja az OPENQUERY-t. A távoli kiszolgálóhoz való csatlakozáshoz használt engedélyek a csatolt kiszolgálóhoz megadott beállításokból származnak.
Examples
A. UPDATE átmenő lekérdezés végrehajtása
Az alábbi példa egy átmenő UPDATE lekérdezést használ a hivatkozott kiszolgálóhoz, amely neve OracleSvr.
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
B. INSERT átmenő lekérdezés végrehajtása
Az alábbi példa egy átmenő INSERT lekérdezést használ a hivatkozott kiszolgálóhoz, amely neve OracleSvr.
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
C. DELETE átmenő lekérdezés végrehajtása
Az alábbi példa egy átmenő DELETE lekérdezéssel törli a B példában beszúrt sort.
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
D. SELECT átmenő lekérdezés végrehajtása
Az alábbi példa egy átmenő SELECT lekérdezéssel választja ki a B példában beszúrt sort.
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
Lásd még
DELETE (Transact-SQL)
FROM (Transact-SQL)
INSERT (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
OPENROWSET (Transact-SQL)
SELECT (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_serveroption (Transact-SQL)
UPDATE (Transact-SQL)
WHERE (Transact-SQL)