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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-07 07:10:40866ブラウズ

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

SQL Server で INNER JOIN を使用して複数のテーブルからレコードを削除する

MySQL とは異なり、SQL Server はレコードの削除に使用される構文を直接サポートしていません。 INNER JOIN を使用して複数のテーブルから。ただし、「削除された」疑似テーブルを利用することで回避策を実現で​​きます。

ステップ 1: 削除された ID を保存するための一時テーブルを初期化する

begin transaction;

declare @deletedIds table ( id int );

ステップ 2: 最初のテーブルから削除し、出力を削除する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;

ステップ 3: 一時テーブルを使用して 2 番目のテーブルから削除

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

ステップ 4: 追加のテーブルから削除(オプション)

delete from t3
from table3 as t3 ...

ステップ 5: トランザクションをコミットする

commit transaction;

注: 最初から削除された ID を出力します削除すると、次回以降も参加を続けることができますdeletions.

代替アプローチ: トリガー

別の方法として、最初のテーブルにトリガーを作成して、他のテーブルの関連レコードの削除を処理することもできます。このアプローチにより、暗黙的なトランザクション内のデータの整合性が保証されます。ただし、追加のトリガーのメンテナンスが必要であり、複雑な結合条件はすぐにはサポートされません。

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

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