외부 키 열을 사용하면 SQL Server에서 0을 대량 삽입 할 수 있습니다.

.net foreign-keys sql sqlbulkcopy sql-server

문제

열에 FK 제약 조건을 확인하고 NULL을 허용하는 열이 있습니다. 그러나 주 테이블에 ID 0의 행이 없더라도 값으로 0을 허용합니다.

이 삽입은 .NET의 대량 삽입에 발생합니다. 그러나 값을 유효한 숫자로 변경하고 SQL Server에서 0으로 다시 변경하면 허용되지 않습니다.

그래서 어떻게 든 일괄 삽입은 0이 허용되도록하고 있습니다, 이유는 무엇입니까?

수락 된 답변

기본적으로 BULK INSERT 는 검사 및 외부 키 제약 조건을 무시합니다. CHECK_CONSTRAINTS 를 사용하여 설정을 해제 할 수 있습니다.

이것은 설명서에 설명되어 있습니다.

CHECK_CONSTRAINTS

대량 가져 오기 작업 중에 대상 테이블 또는 뷰의 모든 제약 조건을 검사하도록 지정합니다. CHECK_CONSTRAINTS 옵션을 사용하지 않으면 CHECK 및 FOREIGN KEY 제약 조건이 무시되고 작업 후에 테이블의 제약 조건이 신뢰할 수 없음으로 표시됩니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.