Anda harus menggunakan sp_addlinkedserver
untuk membuat tautan server. Lihat dokumentasi referensi untuk penggunaan. Setelah tautan server dibuat, Anda akan membuat kueri seperti biasa, cukup awali nama database dengan server lain. Yaitu:
-- FROM DB1
SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID
Setelah tautan dibuat, Anda juga dapat menggunakan OPENQUERY
untuk mengeksekusi pernyataan SQL di server jauh dan hanya mentransfer data kembali kepada Anda. Ini bisa menjadi sedikit lebih cepat, dan itu akan membiarkan server jarak jauh mengoptimalkan kueri Anda. Jika Anda menyimpan data dalam tabel sementara (atau dalam memori) di DB1
dalam contoh di atas, maka Anda akan dapat menanyakannya seperti bergabung dengan tabel standar. Misalnya:
-- Fetch data from the other database server
SELECT *
INTO #myTempTable
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]')
-- Now I can join my temp table to see the data
SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID
Lihat dokumentasi untuk OPENQUERY untuk melihat beberapa contoh lainnya. Contoh di atas cukup dibuat-buat. Saya pasti akan menggunakan metode pertama dalam contoh khusus ini, tetapi opsi kedua menggunakan OPENQUERY
dapat menghemat waktu dan kinerja jika Anda menggunakan kueri untuk memfilter beberapa data.