Memadam Rekod daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server
Tidak seperti MySQL, SQL Server tidak secara langsung menyokong sintaks yang digunakan untuk memadam rekod daripada berbilang jadual menggunakan INNER JOIN. Walau bagaimanapun, penyelesaian boleh dicapai dengan memanfaatkan jadual pseudo "dipadamkan".
Langkah 1: Mulakan Jadual Sementara untuk Menyimpan ID yang Dipadamkan
begin transaction; declare @deletedIds table ( id int );
Langkah 2: Padam daripada Jadual Pertama dan Output Dipadam ID
delete from t1 output deleted.id into @deletedIds from table1 as t1 inner join table2 as t2 on t2.id = t1.id inner join table3 as t3 on t3.id = t2.id;
Langkah 3: Padam daripada Jadual Kedua Menggunakan Jadual Sementara
delete from t2 from table2 as t2 inner join @deletedIds as d on d.id = t2.id;
Langkah 4: Padam daripada Jadual Tambahan (Pilihan)
delete from t3 from table3 as t3 ...
Langkah 5: Komited Transaksi
commit transaction;
Nota: Mengeluarkan ID yang dipadamkan daripada pemadaman pertama membolehkan anda terus menyertai untuk pemadaman seterusnya.
Pendekatan Alternatif: Pencetus
Sebagai alternatif, anda boleh mencipta pencetus pada jadual pertama untuk mengendalikan pemadaman rekod berkaitan dalam jadual lain. Pendekatan ini akan memastikan integriti data dalam transaksi tersirat. Walau bagaimanapun, ia memerlukan penyelenggaraan pencetus tambahan dan tidak menyokong syarat gabungan yang kompleks.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod daripada Berbilang Jadual Pelayan SQL Menggunakan INNER JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!