Sisipkan Ke... Gabung... Pilih dalam SQL Server
Dalam SQL Server, pernyataan INSERT INTO...SELECT membenarkan anda untuk memasukkan data daripada pertanyaan SELECT ke dalam jadual sasaran. Walau bagaimanapun, apabila pertanyaan SELECT melibatkan data daripada berbilang jadual, klausa OUTPUT tidak boleh menangkap data merentas jadual yang berbeza.
Memperkenalkan MERGE
Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan kenyataan MERGE. MERGE menggabungkan operasi INSERT, UPDATE dan DELETE ke dalam satu pernyataan. Ia membolehkan anda melakukan tindakan secara bersyarat pada baris sasaran berdasarkan kriteria tertentu.
Menggunakan MERGE untuk Data Output
Untuk menangkap data daripada kedua-dua jadual yang disisipkan dan sumber, anda boleh gunakan klausa OUTPUT dalam pernyataan MERGE. Contoh berikut menunjukkan cara untuk memasukkan data daripada berbilang jadual dan mengeluarkan Inserted.ID dan Table2.ID:
MERGE INTO Table3 USING ( SELECT null AS col2, 110 AS col3, Table1.ID AS col4, Table2.Column2 AS col5, Table2.ID AS col6 FROM Table1 JOIN Table1Table2Link ON Table1.ID = Table1Table2Link.Column1 JOIN Table2 ON Table1Table2Link.Column2 = Table2.ID ) AS s ON 1 = 0 -- Always not matched WHEN NOT MATCHED THEN INSERT (Column2, Column3, Column4, Column5) VALUES (s.col2, s.col3, s.col4, s.col5) OUTPUT Inserted.ID, s.col6 INTO @MyTableVar (insertedId, Table2Id);
Dalam pernyataan MERGE ini:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap Data daripada Berbilang Jadual Semasa Operasi INSERT SQL Server Menggunakan MERGE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!