OPENQUERY (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Menjalankan kueri pass-through yang ditentukan pada server tertaut yang ditentukan. Server ini adalah sumber data OLE DB. OPENQUERY dapat direferensikan dalam klausa FROM kueri seolah-olah itu adalah nama tabel. OPENQUERY juga dapat direferensikan sebagai tabel target pernyataan INSERT, UPDATE, atau DELETE. Ini tunduk pada kemampuan penyedia OLE DB. Meskipun kueri dapat mengembalikan beberapa kumpulan hasil, OPENQUERY hanya mengembalikan yang pertama.
Sintaks
OPENQUERY ( linked_server ,'query' )
Argumen
linked_server
Adalah pengidentifikasi yang mewakili nama server yang ditautkan.
' kueri '
Apakah string kueri dijalankan di server tertaut. Panjang maksimum string adalah 8 KB.
Keterangan
OPENQUERY tidak menerima variabel untuk argumennya.
OPENQUERY tidak dapat digunakan untuk menjalankan prosedur tersimpan yang diperluas pada server tertaut. Namun, prosedur tersimpan yang diperluas dapat dijalankan pada server tertaut dengan menggunakan nama empat bagian. Contohnya:
EXEC SeattleSales.master.dbo.xp_msver
Setiap panggilan ke OPENDATASOURCE, OPENQUERY, atau OPENROWSET dalam klausul FROM dievaluasi secara terpisah dan independen dari panggilan apa pun ke fungsi-fungsi ini yang digunakan sebagai target pembaruan, bahkan jika argumen identik diberikan ke dua panggilan. Secara khusus, kondisi filter atau gabungan yang diterapkan pada hasil salah satu panggilan tersebut tidak berpengaruh pada hasil yang lain.
Izin
Setiap pengguna dapat menjalankan OPENQUERY. Izin yang digunakan untuk menyambungkan ke server jarak jauh diperoleh dari pengaturan yang ditentukan untuk server tertaut.
Contoh
J. Menjalankan kueri pass-through UPDATE
Contoh berikut menggunakan kueri pass-through UPDATE
terhadap server tertaut yang dibuat dalam contoh A.
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName';
B. Menjalankan kueri pass-through INSERT
Contoh berikut menggunakan kueri pass-through INSERT
terhadap server tertaut yang dibuat dalam contoh A.
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
VALUES ('NewTitle');
C. Menjalankan kueri pass-through DELETE
Contoh berikut menggunakan kueri pass-through DELETE
untuk menghapus baris yang disisipkan dalam contoh B.
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
D. Menjalankan kueri pass-through SELECT
Contoh berikut menggunakan kueri pass-through SELECT
untuk memilih baris yang disisipkan dalam contoh B.
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
Lihat Juga
DELETE (Transact-SQL)
FROM (Transact-SQL)
INSERT (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
OPENROWSET (T-SQL)
SELECT (Transact-SQL)
sp_addlinkedserver (T-SQL)
sp_serveroption (T-SQL)
UPDATE (Transact-SQL)
WHERE (Transact-SQL)