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.