적용 대상
SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

증상

테이블에서 데이터를 삭제 하려고 하면 데이터가 Microsoft SQL Server 2016 2017에 다른 테이블에서 참조 하 고 가정 합니다. I f 쿼리를 살펴보면 실행 계획을 볼 수 있습니다 외래 키 참조를 확인 하는 연산자를 사용 하 여 .이 경우 는 다음과 같은 오류 메시지가 나타날 수 있습니다 경우에 행 되 고 삭제 된 다른 테이블에서 참조 되지 않는:

메시지 547, 수준 16, 상태 0, 줄 LineNumber

DELETE 문은 참조 제약 조건 충돌

상태

Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.

해결 방법

이 문제는 다음과 같은 SQL Server용 누적 업데이트에서 해결되었습니다.

참고: 이 문제는 SQL Server 2016 s p 2 용 누적 업데이트 6에서 해결 됩니다.

SQL Server 대 한 누적 업데이트.

SQL Server용 각각의 새로운 누적 업데이트는 모이전 누적 업데이트에 포함된 모든 핫픽스 및 보안 수정 프로그램을 포함합니다. SQL Server에 대한 최신 누적 업데이트를 확인해 보십시오.

해결 방법

이 문제를 해결 하려면 다음 방법 중 하나를 사용 합니다.

  • 이 쿼리를 실행 하려면 130 아래 호환성 수준을 사용 합니다.

  • 참조 하는 테이블에 인덱스 구조를 변경 합니다.

추가 정보

시작 데이터베이스 호환성 수준을 구성 범위 130 2016 SQL Server에서에서 쿼리 실행 계획을 외래 키 참조를 사용할 수 있습니다. 테이블의 행에서 다른 행 경우 참조를 확인 하기 위해 연산자를 확인 합니다. 참조 무결성 제약 조건을 통해 테이블입니다. 경우에 이러한 연산자를 사용할 수 있습니다. 테이블은 많은 수의 외래 테이블에서 참조 됩니다. 이 연산자에서 SQL Server 이러한 검사를 수행 하 여 참조 하는 각 테이블에서 인덱스를 선택 합니다. If 참조 테이블에 여러 키 열이 있는 인덱스는 이러한 일부 왼쪽 끝 열 외래 키가 있지만 다른에 속하지 않는 열이 외래 키의 일부입니다. 잘못 된 검사 수행이 될 수 있습니다. SQL Server 의해서.

예를 들어, 다음 스키마를 살펴보십시오.

표 tpk (pk int 제약 조건 만들기 클러스터 된 기본 키를 cpk)

(한 int, fk int 테이블 tfk 만들기 cfk 외래 키 참조 tpk 제약 조건, 인덱스 i a clustered(a,fk))

이러한 스키마만 변경 하는 경우이 문제가 발생할 수 있습니다. 열 순서 인덱스에 ia (fk, 한), 지 것입니다.

참조

정보는  용어Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 하도록 합니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.