Merge Select Into MS SQL Server

Untuk memahami penggunaan MERGE, SELECT INTO, dan bagaimana kedua perintah tersebut bekerja dalam SQL Server, mari kita bahas keduanya secara terpisah:




1. MERGE Statement

Perintah MERGE digunakan untuk melakukan operasi INSERT, UPDATE, atau DELETE secara kondisional dalam satu perintah. Hal ini sangat berguna ketika Anda ingin melakukan sinkronisasi antara dua tabel.

Sintaks Dasar MERGE

MERGE TargetTable AS target
USING SourceTable AS source
ON target.KeyColumn = source.KeyColumn
WHEN MATCHED THEN
    UPDATE SET target.Column = source.Column
WHEN NOT MATCHED BY TARGET THEN
    INSERT (Column1, Column2)
    VALUES (source.Column1, source.Column2)
WHEN NOT MATCHED BY SOURCE THEN
    DELETE;

Penjelasan:

  1. USING: Menentukan tabel sumber (source) untuk dibandingkan dengan tabel target.
  2. ON: Menentukan kondisi yang digunakan untuk mencocokkan data antara tabel target dan sumber.
  3. WHEN MATCHED: Menentukan tindakan (misalnya, UPDATE) jika kondisi cocok.
  4. WHEN NOT MATCHED BY TARGET: Menentukan tindakan (INSERT) jika data di tabel sumber tidak ada di tabel target.
  5. WHEN NOT MATCHED BY SOURCE: Menentukan tindakan (DELETE) jika data di tabel target tidak ada di tabel sumber.

Contoh Penggunaan

Misalkan Anda memiliki tabel Employees (target) dan NewEmployees (source). Anda ingin menyinkronkan data antara keduanya:


MERGE Employees AS target

USING NewEmployees AS source

ON target.EmployeeID = source.EmployeeID

WHEN MATCHED THEN

    UPDATE SET target.Name = source.Name,

               target.Department = source.Department

WHEN NOT MATCHED BY TARGET THEN

    INSERT (EmployeeID, Name, Department)

    VALUES (source.EmployeeID, source.Name, source.Department)

WHEN NOT MATCHED BY SOURCE THEN

    DELETE;


2. SELECT INTO Statement

Perintah SELECT INTO digunakan untuk membuat tabel baru berdasarkan hasil seleksi dari tabel lain, dengan semua data disalin ke tabel baru.

Sintaks Dasar SELECT INTO

SELECT Column1, Column2, ...
INTO NewTable
FROM ExistingTable
WHERE Condition;

Penjelasan:

  1. INTO: Membuat tabel baru dengan struktur berdasarkan kolom yang dipilih.
  2. Data: Data dari tabel sumber akan langsung disalin ke tabel baru.
  3. Kondisi: Data yang dimasukkan ke tabel baru dapat difilter menggunakan klausa WHERE.

Contoh Penggunaan

Misalkan Anda ingin membuat tabel baru ArchivedOrders dari tabel Orders dengan data yang sudah diproses:


SELECT OrderID, CustomerID, OrderDate

INTO ArchivedOrders

FROM Orders

WHERE Status = 'Processed';


Kapan Menggunakan MERGE atau SELECT INTO?

1. Sinkronisasi Data, Gunakan MERGE untuk menyinkronkan data antara dua tabel.
2. Membuat Tabel Baru, Gunakan SELECT INTO untuk membuat tabel baru berdasarkan hasil seleksi dari tabel lain.
3. Operasi Multi-tindakan, (merge) -> Mendukung operasi kombinasi seperti INSERT, UPDATE, dan DELETE. sedangkan (select into) ->  Hanya mendukung INSERT data ke tabel baru.
4. Efisiensi Operasi Sederhana (select into ) -> Efisien untuk menyalin data atau membuat tabel sementara untuk analisis.

Semoga informasi ini dapat bermanfaat, jika ada kesalahan informasi saya minta maaf.

Comments

Popular posts from this blog

Integrating PHP with Message Queues RabbitMQ Kafka

FastAPI and UVLoop: The Perfect Pair for Asynchronous API Development

Konfigurasi dan Instalasi PostgreSQL Secara Lengkap di Windows Linux dan MacOS