Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Applies to:SQL Server
Azure SQL Managed Instance
Kör den angivna direktfrågan på den angivna länkade servern. Den här servern är en OLE DB-datakälla. OPENQUERY kan refereras i FROM-satsen för en fråga som om det vore ett tabellnamn. OPENQUERY kan också refereras som måltabell för en INSERT-, UPDATE- eller DELETE-instruktion. Detta gäller för ole db-providerns funktioner. Även om frågan kan returnera flera resultatuppsättningar returnerar OPENQUERY bara den första.
Transact-SQL syntaxkonventioner
Syntax
OPENQUERY ( linked_server ,'query' )
Arguments
linked_server
Är en identifierare som representerar namnet på den länkade servern.
"fråga"
Körs frågesträngen på den länkade servern. Strängens maximala längd är 8 KB.
Anmärkningar
OPENQUERY accepterar inte variabler för sina argument.
OPENQUERY kan inte användas för att köra utökade lagrade procedurer på en länkad server. En utökad lagrad procedur kan dock köras på en länkad server med hjälp av ett namn i fyra delar. Till exempel:
EXEC SeattleSales.master.dbo.xp_msver
Alla anrop till OPENDATASOURCE, OPENQUERY eller OPENROWSET i FROM-satsen utvärderas separat och oberoende av alla anrop till dessa funktioner som används som mål för uppdateringen, även om identiska argument levereras till de två anropen. I synnerhet har filter- eller kopplingsvillkor som tillämpas på resultatet av ett av dessa anrop ingen effekt på resultatet av det andra.
behörigheter
Alla användare kan köra OPENQUERY. De behörigheter som används för att ansluta till fjärrservern hämtas från de inställningar som definierats för den länkade servern.
Exempel
A. Köra en UPPDATERING-direktfråga
I följande exempel används en direktfråga UPDATE mot den länkade servern med namnet OracleSvr.
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
B. Köra en INSERT-direktfråga
I följande exempel används en direktfråga INSERT mot den länkade servern med namnet OracleSvr.
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
C. Köra en DELETE-direktfråga
I följande exempel används en direktfråga DELETE för att ta bort raden som infogas i exempel B.
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
D. Köra en SELECT-direktfråga
I följande exempel används en direktfråga SELECT för att välja raden som infogas i exempel B.
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
Se även
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)