FIX: 쿼리를 실행 하면 "NULL을 수 열의 값을 NULL로 설정 하려고" 오류 메시지가 나타난다 isnull () 함수는 SQL Server 2008의 null 허용 열 값을 선택할 수 사용

Microsoft는 Microsoft SQL Server 2008 수정 프로그램 다운로드 가능한 하나의 파일로 배포합니다. 수정 프로그램은 계속 누적 되는 형태 이므로 각 새 릴리스에 모든 핫픽스를 포함 하며 수정 프로그램 릴리스의 이전 SQL Server 2008에 포함 된 모든 보안 수정 프로그램

증상

다음 시나리오를 고려하십시오.
  • Microsoft SQL Server 2008에서는 isnull () 함수를 사용 하 여 null 허용 열에 있는 값을 선택 하는 쿼리를 실행 합니다.
  • Null 허용 열이 들어 있는 테이블은 null 허용 열에 있는 다른 테이블과 조인 됩니다.
  • 만들어진 쿼리 최적화 프로그램에서 쿼리 계획에 해시 조인, 스풀, 또는 정렬 테이블 JOIN 연산자는 아래 사용 합니다.
이 시나리오에서는, 다음과 같은 오류 메시지가 나타날 수 있습니다.
메시지 681, 수준 16, 상태 3, 줄 2

NULL을 수 열의 값을 NULL로 설정 하려고 했습니다.

원인

쿼리 최적화 프로그램 join 연산자는 NULL 값을 거부 하기 때문에 isnull () 함수에서 참조 되는 열이 null이 아닌 것을 확인 합니다. 그런 다음 쿼리 계획에 쿼리 최적화 프로그램 JOIN 연산자는 아래에 isnull () 함수 식을 푸시합니다. 또한 식의 값은 NULL 일 수 있습니다. 그러나 쿼리 최적화 프로그램은 다시 식의 null 허용 속성이 파생 되지 않습니다. 다음 쿼리 계획에 해시 조인, 스풀, 또는 정렬 테이블 식을 포함 하는 구현 하는 작업 테이블 사용 됩니다. 또한 작업 테이블에 해당 하는 열은 null이 아닌로 선언 되었습니다. SQL Server 쿼리 엔진을 작업 테이블에 NULL 값을 삽입 하려고 하면 오류가 발생 합니다.

해결 방법


이 문제에 대 한 수정 프로그램은 먼저 SQL Server 2008 서비스 팩 1 용 누적 업데이트 7에서 릴리스 되었습니다. 이 누적 업데이트 패키지에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
SQL Server 2008 서비스 팩 1 용 누적 979065 업데이트 패키지 7
참고: 빌드는 계속 누적 되는 형태 이므로 각 새 수정 프로그램 릴리스의 모든 핫픽스와 들어 및 이전 SQL Server 2008에 포함 된 모든 보안 수정 프로그램 릴리스의 수정. 이 핫픽스가 포함 된 최신 수정 릴리스를 적용 고려 하는 것이 좋습니다. 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.
SQL Server 2008 서비스 팩 1이 출시 된 이후에 릴리스된 970365 는 SQL Server 2008 빌드
Microsoft SQL Server 2008 핫픽스는 특정 SQL Server 서비스 팩에 대 한 만들어졌습니다. SQL Server 2008 서비스 팩 1을 설치 하려면 SQL Server 2008 서비스 팩 1 핫픽스를 적용 해야 합니다. 기본적으로 SQL Server 서비스 팩에서 제공 되는 모든 핫픽스는 다음 SQL Server 서비스 팩에 포함 됩니다.

해결 방법

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

방법 1

Isnull () 함수를 쿼리에서 제거 합니다.

참고: 열은이 함수에 NULL 값을 거부 하는 JOIN 연산자를 전달 하기 때문에 isnull () 함수는 중복 됩니다.

방법 2

쿼리를 다시 작성 하는 쿼리 계획 해시 조인, 스풀, 또는 정렬 테이블을 사용 하지 않습니다. 예를 들어, 쿼리에 ORDER BY 절이 있으면 필요한 순서를 제공 하 고 필요한 열을 모두 포함 하는 클러스터 된 인덱스 또는 포함 인덱스를 만듭니다. 이 메서드를 사용 하면 쿼리 최적화 프로그램 정렬 테이블을 사용 하지 않습니다.

상태

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

참조

증분 서비스 모델에 대 한 SQL Server 대 한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.

보고 된 문제에 대 한 핫픽스를 제공 하는 SQL Server 팀 935897 는 증분 서비스 모델은



SQL Server 업데이트의 명명 스키마에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.

822499 Microsoft SQL Server 소프트웨어 업데이트 패키지의 새 명명 스키마


소프트웨어 업데이트 용어에 대한 자세한 내용을 보려면, 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서를 확인하십시오.
Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 되는 표준 용어에 대 한 824684 설명
속성

문서 ID: 981037 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백