FIX: SQL Server 2008 에서는 null을 허용하는 열 값을 선택하려면 ISNULL() 함수를 사용하여 쿼리를 실행할 때 "비-NULL-있게 열의 값은 NULL로 설정할 시도 중" 오류 메시지가 예제입니다.

기술 자료 번역 기술 자료 번역
기술 자료: 981037 - 이 문서가 적용되는 제품 보기.
Microsoft은 다운로드 가능한 파일로 Microsoft SQL Server 2008 은 수정 프로그램을 배포합니다. 수정 누적되는 형태이므로 핫픽스가 모두 각 새 릴리스에 포함되어 있으며 이전 SQL Server 2008에 포함된 모든 보안 릴리스의 수정.
모두 확대 | 모두 축소

현상

다음과 같은 경우를 생각해 볼 수 있습니다:
  • Microsoft SQL Server 2008의 값이 Null 허용 열을 선택하려면 ISNULL() 함수를 사용하는 쿼리를 실행합니다.
  • Null을 허용하는 열이 포함된 테이블은 다른 테이블과 열에서 Null 허용 조인됩니다.
  • 스풀, 해시 조인, 정렬 테이블 JOIN 연산자는 아래에 만들어진 쿼리 최적화 프로그램에서 쿼리 계획을 사용합니다.
이 시나리오에서는 다음과 같은 오류 메시지가 나타납니다.
메시지 681, 수준 16, 상태 3, 줄 2
비-NULL-있게 열 값이 NULL로 설정합니다.

원인

쿼리 최적화 프로그램은 조인 연산자가 NULL 값을 거부할 수 있기 때문에 ISNULL() 함수에서 참조되는 열이 null을 허용하지 않는 있는지 확인합니다. 그런 다음 쿼리 계획에서 쿼리 최적화 프로그램 JOIN 연산자는 아래에 ISNULL() 함수 식을 푸시합니다. 또한 식의 값이 NULL이 될 수 있습니다. 쿼리 최적화 프로그램 식이 Null 허용 속성을 re-derive 있지 않습니다. 그런 다음 쿼리 계획에서 작업 테이블에 해시 조인, 스풀, 또는 식이 포함된 정렬 테이블을 구현하는 데 사용됩니다. 또한 작업 테이블의 해당 열로 같이 nullable 선언됩니다. SQL Server 쿼리 엔진이 작업 테이블에 NULL 값을 삽입할 때 오류가 발생합니다.

해결 방법

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

해결 과정

이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.

방법 1

ISNULL() 함수는 쿼리에서 제거하십시오.

참고이 함수는 해당 열에 NULL 값을 거부할 JOIN 연산자를 통해 제공되는 것이므로 ISNULL() 중복 함수입니다.

방법 2

쿼리 계획에 해시 조인, 스풀, 또는 정렬 테이블을 사용할 수 있도록 쿼리를 다시 작성하십시오. 예를 들어, 쿼리에 ORDER BY 절이 포함되어 있는 경우 필요한 순서 및 모든 필수 열이 포함되어 있는 covering 또는 클러스터된 인덱스를 만듭니다. 이 메서드를 사용하면 쿼리 최적화 프로그램 정렬 테이블을 사용하지 않습니다.

현재 상태

Microsoft는 "적용 대상" 절에 나열된 제품에서 문제가 있음을 확인했습니다.

참조

자세한 내용은 증분 서비스 모델을 SQL Server 기술 자료의 다음 문서를 참조하십시오.
935897보고된 문제에 대한 핫픽스를 제공하는 SQL Server 팀으로부터 증분 서비스 모델을 사용합니다


SQL Server 업데이트를 명명 스키마에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
822499새 명명 스키마에 Microsoft SQL Server 소프트웨어 업데이트 패키지에 대한


소프트웨어 업데이트 용어에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
824684Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명

속성

기술 자료: 981037 - 마지막 검토: 2010년 3월 15일 월요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
키워드:?
kbmt kbhotfixserver kbexpertiseadvanced kbsurveynew kbqfe kbfix KB981037 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:981037

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com