Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server?

Bagaimana untuk Memadam daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server?

Patricia Arquette
Lepaskan: 2025-01-07 00:11:41
asal
969 orang telah melayarinya

How to Delete from Multiple Tables with INNER JOIN in SQL Server?

Memadam daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server

Dalam MySQL, pemadaman daripada berbilang jadual menggunakan INNER JOIN boleh dicapai dengan sintaks :

DELETE t1,t2 
FROM table1 AS t1 
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...
Salin selepas log masuk

Walau bagaimanapun, SQL Server tidak menyokong sintaks ini. Sebaliknya, anda boleh menggunakan jadual pseudo "dipadamkan" untuk mencapai hasil yang serupa:

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;

delete from t2
from table2 as t2
    inner join @deletedIds as d
      on d.id = t2.id;

delete from t3
from table3 as t3 ...

commit transaction;
Salin selepas log masuk

Dengan menggunakan jadual pseudo "deleted.id", anda boleh melakukan pemadaman bertingkat pada jadual berkaitan, memastikan data integriti.

Alternatif Pendekatan:

  • Pencetus: Anda boleh mencipta pencetus pada jadual1 yang memadamkan baris secara automatik daripada jadual berkaitan (jadual2 dan jadual3). Ini memastikan ketekalan tetapi memerlukan konfigurasi tambahan.
  • Kekunci Asing Berlatarkan: Konfigurasi kekunci asing berlatarkan antara jadual yang terlibat untuk mengendalikan pemadaman secara automatik.

Akhirnya, yang paling pendekatan yang sesuai bergantung pada keperluan khusus sistem anda.

Atas ialah kandungan terperinci Bagaimana untuk Memadam daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan