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

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

Patricia Arquette
リリース: 2025-01-07 00:11:41
オリジナル
966 人が閲覧しました

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

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

MySQL では、INNER JOIN を使用して複数のテーブルから削除することができます。 :

DELETE t1,t2 
FROM table1 AS t1 
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...
ログイン後にコピー

ただし、SQL Server はこれをサポートしていません構文。代わりに、「deleted」擬似テーブルを利用して同様の結果を得ることができます。

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

「deleted.id」擬似テーブルを利用することで、関連テーブルに対してカスケード削除を実行し、データを確保できます。整合性。

代替案アプローチ:

  • トリガー: 関連テーブル (table2 と table3) から行を自動的に削除するトリガーを table1 に作成できます。これにより一貫性が確保されますが、追加の構成が必要です。
  • カスケード外部キー: 削除を自動的に処理するために、関係するテーブル間でカスケード外部キーを構成します。

最終的には、適切なアプローチは、システムの特定の要件によって異なります。

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

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