ホームページ >データベース >mysql チュートリアル >INNER JOIN を使用して複数の SQL Server テーブルからレコードを削除する方法
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 サイトの他の関連記事を参照してください。