none
MSSQL에서, 서로 의존적인 2개의 테이블에서 행삭제작업을 동시에 처리하고자하는데,... RRS feed

  • 질문

  • DB에서 Group='20' 인 자료들을 아래 2개의 테이블(tableHead,tableDetail )에서 삭제하고자합니다.

    아래와 같이 쿼리문을 작성했을때, tableDetail에서 삭제후, tableHead에서 삭제작업이 이루어져야하는데, 다른 추가적 코딩이 필요한지를 묻고 싶습니다.

    감사합니다.

    Delete from tableDetail where Hdid in (Select Hdid from tableHead where Group='20'); "
    Delete from tableHead where Group='20';

    2020년 9월 28일 월요일 오전 1:02

답변

  • 다음 쿼리를 참조하시기 바랍니다:

    Delete a from tableDetail a
    Inner join tableHead b on a. Hdid =b. Hdid 
    Where b. Group='20'

    Delete from tableHead where Group='20';


    그리고 parent 레코드를 삭제하는 ChildTable에 트리거(trigger)를 넣을 수 있습니다.

    또한 foreign 키 관계를 정의하고 ON DELETE CASCADE 옵션을 사용할 수도 있습니다.

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.


    2020년 9월 28일 월요일 오전 9:56