SQL Server에서 INNER JOIN을 사용하여 여러 테이블 삭제
MySQL과 달리 SQL Server는 내부 조인. 그러나 다음 해결 방법을 사용하면 동일한 효과를 얻을 수 있습니다.
1단계: "삭제된" 의사 테이블 사용
"@deletedIds"라는 임시 테이블 생성 첫 번째 테이블에서 삭제된 행의 ID를 저장하려면:
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;
참고: 세 번째 테이블과 조인하는 데 필요한 경우 두 번째 삭제 문에서 삭제된.id를 출력할 수 있습니다.
대체 접근 방식 : 트리거
table2와 table3에서 자동으로 삭제되는 table1의 트리거 사용을 고려해보세요. table1에서 행이 삭제될 때. 이렇게 하면 참조 무결성이 보장되고 수동으로 삭제할 필요가 없습니다.
위 내용은 INNER JOIN을 사용하여 여러 SQL Server 테이블에서 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!