동료 중 한 명과 토론 할 때 SQL Server에서 외래 키 사용에 대해 알고 싶습니다.SQL Server의 외래 키
두 테이블이 외래 키를 통해 연결된 경우 부모 테이블에서 레코드가 삭제되면 하위 테이블의 동일한 참조 레코드도 삭제되어야한다고 생각합니다.
예를 들어, 표 1과 표 2의 두 가지 표가 있습니다. Table1에는 id = 1 인 레코드가 있고 Table2에는 id = 1 인 레코드가 두 개 있습니다. Table2는 하위 테이블이며 외래 키를 통해 Table1과 연결됩니다. 이제 Table1에서 id = 1 레코드를 삭제하려고하면 동시에 id = 1 (2 레코드)가 Table2에서 삭제되어야합니다.
그는 그것이 잘못되었다고 말합니다. 외래 키의 경우 두 테이블에서 레코드를 개별적으로 삭제해야합니다.
누가 맞습니까?
좋은 답변이지만 'SQL 서버에서 외래 키 사용'에 대한 OP의 첫 번째 질문에 완전히 대답하지는 않습니다. 그러나 나는 그것이 범위와 다를 것이라고 생각합니다. –
하지만 삭제 및 업데이트 외래 키에 대한 작업 없음으로 설정하고 부모 테이블에서 레코드를 삭제하려고하면 자식 테이블에서 외래 키 충돌에 대한 오류가 발생합니다. – Abbas
@abbas : yes - "No Action"을 설정하면 ** 자식 행을 먼저 삭제하는 ** 책임이 있습니다. –