OTWÓRZKWERENDĘ (Transact-SQL)
Wykonuje kwerenda przekazująca na określonym serwer połączony.Ten serwer jest na źródłodanych OLE DB .OtwórzKwerendę (OpenQuery) można się odwoływać w klauzula FROM kwerendy, tak jakby był on nazwę tabela .OtwórzKwerendę (OpenQuery) może być określany również jako miejsce docelowe tabela INSERT, UPDATE, lub usunąć instrukcja.Jest to z zastrzeżeniem możliwościdostawcaOLE DB. Mimo że kwerenda może zwracać wiele zestawów wyników, OTWÓRZKWERENDĘ zwraca tylko pierwszy z nich.
Składnia
OPENQUERY ( linked_server ,'query' )
Argumenty
linked_server
Identyfikator reprezentuje nazwę serwer połączony.'query'
ciąg kwerendy jest wykonywany na serwer połączony.Maksymalna długość ciąg wynosi 8 KB.
Uwagi
OTWÓRZKWERENDĘ nie akceptuje zmiennych jej argumentów.
Nie można użyć OTWÓRZKWERENDĘ wykonać rozszerzonych procedur przechowywanych na serwer połączony.Jednakże rozszerzona procedura składowana może być wykonywany na serwer połączony przy użyciu nazwy czteroczęściowym identyfikatorem.Na przykład:
EXEC SeattleSales.master.dbo.xp_msver
Uprawnienia
Każdy użytkownik może wykonać OtwórzKwerendę (OpenQuery).Uprawnienia, które są używane do łączenia się z serwerem zdalnym są uzyskiwane z ustawieniami zdefiniowanymi dla serwer połączony.
Przykłady
A.Wykonywanie kwerenda przekazująca
Poniższy przykład tworzy serwer połączony o nazwie OracleSvr przeciwko bazy danych Oracle przy użyciu Microsoft OLE DB Provider for Oracle.Następnie, w tym przykładzie użyto przekazujące SELECT kwerenda na tym serwer połączony.
Ostrzeżenie
W tym przykładzie założono, że bazy danych Oracle alias o nazwie ORCLDB został utworzony.
EXEC sp_addlinkedserver 'OracleSvr',
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO
SELECT *
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
GO
B.Wykonywanie aktualizacji kwerenda przekazująca
W poniższym przykładzie użyto przekazujące UPDATE kwerenda na serwer połączony utworzone w przykładzie A.
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
C.Wykonywanie WSTAW kwerenda przekazująca
W poniższym przykładzie użyto przekazujące INSERT kwerenda na serwer połączony utworzone w przykładzie A.
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
D.Wykonaniem kwerenda przekazująca
W poniższym przykładzie użyto przekazujące DELETE kwerendę, aby usunąć wiersz wstawiony w przykładzie C.
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
Zobacz także