ホームページ >データベース >mysql チュートリアル >INNER JOIN を使用して SQL Server の複数のテーブルから削除する方法

INNER JOIN を使用して SQL Server の複数のテーブルから削除する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-07 06:51:431028ブラウズ

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

SQL Server で INNER JOIN を使用した複数のテーブルからの削除

MySQL とは異なり、SQL Server は、次を使用して複数のテーブルから削除するための構文をサポートしていません。内部結合。ただし、同じ結果を達成する別の方法もあります。

「削除された」疑似テーブルの使用

次のコード例を考えてみましょう:

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;

このコードは、「削除された」擬似テーブルを利用して、最初の削除ステートメントから削除された ID を保存します。これらの ID は、後続の削除ステートメントで使用され、他のテーブルから対応する行を削除します。

その他の考慮事項

  • 「削除された出力」を使用することもできます。 3 番目のテーブルとの結合に必要な場合は、2 番目の delete ステートメントで実行します。
  • 必要に応じて、親テーブル (table1 など) でトリガーを使用して、子テーブル (table2 や table3 など) から行を自動的に削除することを検討してください。このアプローチは、複数のテーブル間でデータの整合性を維持するための便利で効率的な方法を提供します。

以上がINNER JOIN を使用して SQL Server の複数のテーブルから削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。