2012-02-09 2 views
1

MS SQL에 데이터를 대량로드합니다. 이렇게 효과적으로 임시로 FK 제약 조건을 테이블에서 비활성화합니다 (하나의 테이블에서 제약 조건이 모두 "Set NULL"을 삭제합니다). 제약 조건 검사를 다시 활성화하기 전에 유효하지 않은 외래 키를 확인하고 NULL로 설정해야합니다.대량로드 후 잘못된 FK 데이터 제거

이 목표를 달성하려면 어떻게해야합니까? 감사.

답변

3
UPDATE MyMainTable 
SET TableAID = CASE WHEN TableA.ID IS NULL THEN NULL ELSE TableAID END, 
    TableBID = CASE WHEN TableB.ID IS NULL THEN NULL ELSE TableBID END, 
FROM MyMainTable 
    LEFT JOIN TableA ON MyMainTable.TableAID = TableA.ID 
    LEFT JOIN TableB ON MyMainTable.TableBID = TableB.ID 
+0

멋진 작품입니다. – Daniel