Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengkueri data dengan menggabungkan dua tabel dalam dua database di server yang berbeda

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ROLLBACK TRUNCATE di SQL Server

  2. Bagaimana cara agar ekstensi SQLSRV berfungsi dengan PHP, karena MSSQL sudah usang?

  3. konversi tipe data varchar ke tipe data datetime menghasilkan nilai di luar rentang

  4. Node.js dan Microsoft SQL Server

  5. Menggabungkan nilai berdasarkan ID