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」擬似テーブルを利用することで、関連テーブルに対してカスケード削除を実行し、データを確保できます。整合性。
代替案アプローチ:
最終的には、適切なアプローチは、システムの特定の要件によって異なります。
以上がSQL ServerでINNER JOINを使用して複数のテーブルから削除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。