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 UPDATE 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 | Long Tail | +---------+-----------+
Dan katakanlah kita ingin memperbarui salah satu nama kucing.
Kita bisa melakukannya dengan menggunakan UPDATE kueri pass-through terhadap server tertaut, seperti ini.
UPDATE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 3'
)
SET CatName = 'Short Tail'; 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 | | 2 | Scratch | | 3 | Short Tail | +---------+------------+
Seperti yang diharapkan, baris ketiga kini telah diperbarui.
Satu hal yang harus saya tunjukkan adalah bahwa OPENQUERY tidak menerima variabel untuk argumennya.