KB4046745 - 수정: SQL SERVER 2014, 2016 또는 2017의 WHERE 절에서 존재하지 않는 파티션 함수를 참조하면 UPDATE 문이 자동으로 실패합니다.

적용 대상
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

증상

Microsoft SQL Server 2014, 2016 또는 2017에서 $PARTITION 키워드(keyword) 사용하여 존재하지 않는 파티션 함수를 참조하는 UPDATE 문이 있다고 가정합니다. 예를 들어,

참고

UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1

이 경우 SQL Server 업데이트를 수행하지 않거나 NonExistingPartitionFunction 개체가 없음을 나타내는 오류 메시지를 반환합니다. 그러나 사용자 관점에서 UPDATE 문이 성공적으로 실행되었지만 실제로는 실패한 것으로 보입니다.

원인

일괄 처리를 실행할 때 SQL Server DNR(지연된 이름 확인)을 수행할 수 있습니다. 이 프로세스에서 SQL Server 존재하지 않는 개체가 발견되면 즉시 오류를 생성하지 않으며 해당 개체를 참조하는 문을 실행하기 전에 모듈 또는 일괄 처리로 개체가 만들어질 것으로 예상합니다. 파티션 함수의 경우 SQL Server DNR을 올바르게 처리하지 않습니다.

추가 정보

DNR에 대한 자세한 내용은 지연된 이름 확인을 참조하세요.

해결 방법

이 문제는 SQL Server 대한 다음 누적 업데이트에서 해결되었습니다.

SQL Server 2016 SP1의 누적 업데이트 8

2017년 SQL Server 누적 업데이트 4

SQL Server 2014 SP2에 대한 누적 업데이트 9

SQL Server 대한 누적 업데이트 정보:

SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.

SQL Server 2016의 최신 누적 업데이트

SQL Server 2017의 최신 누적 업데이트

SQL Server 2014의 최신 누적 업데이트

상태

Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.

참조 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.