Di SQL Server, OPENQUERY
fungsi rowset memungkinkan Anda untuk mengeksekusi kueri pass-through pada server tertaut.
OPENQUERY
biasanya dirujuk dalam FROM
klausa kueri seolah-olah itu adalah tabel, tetapi juga dapat direferensikan sebagai tabel target dari INSERT
, UPDATE
, atau DELETE
pernyataan.
Artikel ini menyajikan contoh penggunaan OPENQUERY
untuk melakukan DELETE
kueri pass-through.
Contoh
Misalkan server tertaut bernama Homer
memiliki tabel di Pets
database bernama Cats
dengan data berikut.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Hasil:
+---------+------------+ | CatId | CatName | |---------+------------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Short Tail | +---------+------------+
Dan katakanlah kita ingin menghapus salah satu kucing dari database.
Kita bisa melakukannya dengan menggunakan DELETE
kueri pass-through terhadap server tertaut, seperti ini.
DELETE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 2'
);
Hasil:
(1 row affected)
Periksa Hasil
Sekarang kita dapat menjalankan SELECT
kueri pass-through untuk melihat hasilnya.
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
Hasil:
+---------+------------+ | CatId | CatName | |---------+------------| | 1 | FluffDupp | | 3 | Short Tail | +---------+------------+
Seperti yang diharapkan, baris kedua telah dihapus, dan sekarang hanya tersisa dua baris.
Satu hal yang perlu diperhatikan adalah OPENQUERY
tidak menerima variabel untuk argumennya.