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

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

DDD
リリース: 2025-01-07 06:09:41
オリジナル
392 人が閲覧しました

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

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

MySQL とは異なり、SQL Server は、内部結合。ただし、次の回避策で同じ効果を得ることができます。

ステップ 1: 「削除された」疑似テーブルを使用する

「@deletedIds」という名前の一時テーブルを作成します。削除された行のIDを最初から保存します。 table:

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;
ログイン後にコピー

ステップ 2: 後続のテーブルから削除

「@deletedIds」テーブルを使用して後続のテーブルから削除します:

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

delete from t3
from table3 as t3 ...
ログイン後にコピー

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

トランザクションをコミットして、変更を永続的にします:

commit transaction;
ログイン後にコピー

注: 必要に応じて、2 番目の delete ステートメントから deleted.id を出力できます。 3 番目のテーブルと結合します。

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

table1 から行が削除されたときに table2 と table3 から自動的に削除するトリガーを table1 で使用することを検討してください。これにより、参照整合性が保証され、手動で削除する必要がなくなります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート