Memadam daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server
Tidak seperti MySQL, SQL Server tidak menyokong pemadaman daripada berbilang jadual menggunakan SERTAI DALAM. Walau bagaimanapun, anda boleh mencapai kesan yang sama dengan penyelesaian berikut:
Langkah 1: Gunakan Jadual Pseudo "Dipadamkan"
Buat jadual sementara yang dipanggil "@deletedIds" untuk menyimpan ID baris yang dipadamkan daripada yang pertama jadual:
begin transaction; declare @deletedIds table ( id int ); 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 2: Padam daripada Jadual Seterusnya
Gunakan jadual "@deletedIds" untuk memadam daripada jadual berikutnya:
delete from t2 from table2 as t2 inner join @deletedIds as d on d.id = t2.id; delete from t3 from table3 as t3 ...
Langkah 3: Komitmen Transaksi
Komit transaksi untuk membuat perubahan kekal:
commit transaction;
Nota: Anda boleh mengeluarkan deleted.id daripada pernyataan padam kedua jika perlu untuk bergabung dengan jadual ketiga.
Pendekatan Alternatif: Pencetus
Pertimbangkan untuk menggunakan pencetus pada jadual1 yang memadamkan secara automatik daripada jadual2 dan jadual3 apabila baris dipadamkan daripada jadual1. Ini memastikan integriti rujukan dan menghapuskan keperluan untuk pemadaman manual.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris daripada Berbilang Jadual Pelayan SQL Menggunakan INNER JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!