Keakraban dengan fungsi OPENQUERY di SQL Server

Database


Pada artikel ini, kita akan berkenalan dengan fungsi OPENQUERY. Digunakan untuk mengeksekusi kueri yang didistribusikan sementara di sumber data jarak jauh menggunakan server tertaut. Ada beberapa cara untuk membuat kueri dari sumber data jarak jauh. Untuk mempelajari selengkapnya tentang kueri sumber data jarak jauh, Anda bisa membaca artikel ini yang berjudul Membuat Kueri Sumber Data Jarak Jauh di SQL Server. Ini juga digunakan untuk mengeksekusi kueri pass untuk mengeksekusi perintah INSERT, UPDATE dan DELETE dalam tabel database yang dikonfigurasi pada server yang ditautkan.

Catatan penting:

  1. Fungsi OPENQUERY adalah metode ad-hoc untuk mengakses data dari server jauh. Jika Anda sering bertanya tentang server jarak jauh, sebaiknya gunakan server yang ditautkan.
  2. Kami tidak dapat menggunakan parameter dalam fungsi OPENQUERY, dan kami tidak dapat menggunakannya untuk menjalankan prosedur yang diperluas pada server yang ditautkan.
  3. Ketika kami menggunakan OPENQUERY untuk mengakses data jarak jauh, SQL Server mengirimkan permintaan ke server jauh. Operasi seperti penguraian kueri dan pembuatan rencana eksekusi dilakukan di server jauh.
  4. OPENQUERY lebih cepat daripada server tertaut karena ketika kami menggunakan server tertaut, server SQL membagi kueri menjadi kueri lokal dan jarak jauh. Kueri lokal dieksekusi di server lokal dan kueri jarak jauh dikirim ke server jauh. SQL Server menggabungkan kumpulan hasil dan mengembalikan kumpulan hasil akhir.

Sintaks fungsi OPENQUERY adalah sebagai berikut:

Fungsi OPENQUERY digunakan setelah ekspresi FROM. Dalam sintaks,

  1. LinkedServer: Tentukan nama server tertaut yang ingin Anda jalankan kuerinya.
  2. Kueri: Tentukan kueri T-SQL yang ingin Anda jalankan di server tertaut. Panjang maksimum string kueri adalah 8 KB.

Menyiapkan lingkungan

Untuk mendemonstrasikan penggunaan OPENQUERY, saya telah menginstal SQL Server 2019 dan PostgreSQL13 di desktop saya. Saya telah membuat dua server terkait. Server terhubung pertama terhubung ke instance SQL Server jarak jauh. Itu disebut Nisarg-PC \ SQL01. Untuk mempelajari cara membuat server tertaut di SQL Server, Anda bisa membaca cara membuat dan mengonfigurasi server tertaut di artikel SQL Server Management Studio.

Server tautan kedua yang disebut PostgreSQL30 digunakan untuk terhubung ke database PostgreSQL. Saya mengonfigurasi DSN (nama sumber data) yang disebut PostgreSQL30 menggunakan driver ODBC. Server tertaut menggunakan DSN untuk mengakses database UKLandRegistery. Untuk melihat daftar server tertaut, jalankan kueri berikut.

Keluaran kueri:


Lihat server tertaut

Sekarang, mari kita lihat beberapa contoh

Contoh 1: Jalankan perintah Select

Untuk menjalankan perintah SELECT di SQL Server, kami menggunakan server tertaut yang disebut Nisarg-PC \ SQL01. Kueri berikut mengisi data database StackOverflow2010.

Pertanyaan:

Keluaran:


Data SQL Server jarak jauh

Untuk menjalankan perintah SELECT di PostgreSQL, kami menggunakan server tertaut yang disebut PostgreSQL30. Query berikut mengisi data database UKLandRegistery.

Pertanyaan:

Keluaran:


Data dari server PostgreSQL jarak jauh

Contoh 2: Masukkan data di tabel lokal

Dalam contoh ini, kita akan mempelajari cara mengimpor data dari sumber jarak jauh dan memasukkannya ke dalam tabel lokal. Saya telah membuat database bernama openQueryDemo. Pada openQueryDemo Database, saya membuat dua tabel bernama tbl_land_registry_price_paid_uk Dan pengguna. definisi dari tbl_land_registry_price_paid_uk Tabelnya adalah sebagai berikut:

Definisi tabel tblUsers adalah sebagai berikut:

Sekarang kita ingin memasukkan data land_registry_price_paid_uk Meja untuk tbl_land_registry_price_paid_uk. Untuk melakukannya, jalankan kueri berikut.

Keluaran:


Data dari PostgreSQL dimasukkan ke tabel lokal

Query di atas mengisi data tabel yang dibuat di database PostgreSQL dan memasukkannya ke dalam tabel yang dibuat di SQL Server.

Demikian pula, kami bermaksud memasukkan data yang relevan [dbo].[Users] Meja untuk [dbo][tblUsers]. Untuk melakukannya, jalankan kueri berikut.

Keluaran


Data diimpor dari server SQL jarak jauh ke tabel lokal

Kueri di atas mengisi data spreadsheet yang dibuat di database SQL Server jarak jauh dan menempatkannya di tabel yang dibuat di SQL Server.

Contoh 3: Jalankan perintah DML

Dalam contoh ini, kita akan mempelajari cara memasukkan, memperbarui, dan menghapus data dari server jauh menggunakan OPENQUERY. Saya membuat dua tabel.

sekolah: Tabel ini dibuat di database PostgreSQL jarak jauh. Pengertian membuat tabel adalah sebagai berikut:

tblMahasiswa: Tabel ini dibuat dalam database SQL Server jarak jauh. Pengertian membuat tabel adalah sebagai berikut:

Sekarang, pertama-tama mari kita masukkan data ke dalam tabel tblStudent. Untuk melakukannya, jalankan kueri berikut.

Keluaran kueri


Masukkan catatan di tabel tblStudent

Sekarang jalankan kueri berikut untuk mengganti nama siswa.

Keluaran kueri:


Perbarui catatan di tabel tblStudent

Sekarang jalankan kueri berikut untuk menghapus rekaman dari tabel.

Keluaran kueri


Hapus catatan di tabel tblStudent

Sekarang, mari kita jalankan kueri yang sama menggunakan database PostgreSQL PEMBUKAAN. Untuk menyisipkan data dalam tabel tblSchool, jalankan kueri berikut.

Keluaran kueri:


Masukkan catatan di tabel tblSchool

Sekarang jalankan kueri berikut untuk mengganti nama sekolah.

Keluaran kueri:


Perbarui catatan di tabel tblSchool

Sekarang jalankan kueri berikut untuk menghapus catatan sekolah dari tabel tblSchool.

Keluaran kueri:


Hapus catatan di tabel tblSchool

Ringkasan

Pada artikel ini, kita berkenalan dengan fungsi OPENQUERY dan aplikasinya. Saya menjelaskan konsep ini dengan menjalankan kueri di instance PostgreSQL dan SQL Server dari jarak jauh.

اادحیای
Postingan terbaru oleh Nisarg Upadhyay (Lihat semua)



Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *