SQL Server에서 INNER JOIN을 사용하여 여러 테이블에서 삭제
MySQL에서 INNER JOIN을 사용하여 여러 테이블에서 삭제하는 구문은 다음과 같습니다. :
DELETE t1,t2 FROM table1 AS t1 INNER JOIN table2 t2 ... INNER JOIN table3 t3 ...
그러나 SQL Server에서는 이 구문을 지원하지 않습니다. 대신 "삭제된" 의사 테이블을 활용하여 유사한 결과를 얻을 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!