KB4055758 - FIX: SQL Server에서 CHAR 및 BINARY 데이터의 끝에서 후행 공백을 반환하는 데 일관되지 않은 동작이 발생함

적용 대상
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) SQL Server 2016 Service Pack 1 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 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

증상

하나 이상의 인덱스가 빌드된 Microsoft SQL Server 테이블이 있다고 가정합니다. 테이블에 대해 쿼리할 때 SQL Server는 CHAR 및 BINARY 열에 대해 일치하지 않는 데이터 패딩을 수행할 수 있습니다. CHAR 및 BINARY 데이터 열의 끝에서 후행 공백을 반환하는 일관성 없는 동작은 다음 조건에 따라 다릅니다.

  • SQL Server 테이블에 열을 만들 때의 ANSI_PADDING 설정입니다.
  • 열에서 테이블 검색 또는 인덱스 검색을 수행할지 결정.

원인

특정 시나리오에서 SQL Server는 더 빠른 데이터 전달을 위해 많은 작업을 우회할 수 있는 최적화를 수행할 수 있습니다. 이 문제는 SQL Server가 위의 시나리오에 최적화를 적용할 수 없음을 인식하지 못하기 때문에 발생합니다.

추가 정보

SQL Server의 이 동작은 다음 문서에 설명된 동작을 준수하지 않습니다. Char 및 Varchar 데이터 사용

참고

char NULL 열이 생성될 때 ANSI_PADDING가 ON이면 char NOT NULL 열과 동일하게 동작합니다. 값은 열 크기에 오른쪽으로 패딩됩니다. char NULL 열이 생성될 때 ANSI_PADDING OFF 인 경우 ANSI_PADDING OFF 설정된 varchar 열처럼 동작합니다. 후행 공백은 잘립니다.

해결 방법

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

SQL Server 2017용 누적 업데이트 2

SQL Server 2016용 누적 업데이트 9

SQL Server 2016 SP1용 누적 업데이트 6

SQL Server 2014 SP2용 누적 업데이트 8

SQL Server 2014 SP1용 누적 업데이트 7

SQL Server용 누적 업데이트 정보:

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

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

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

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

상태

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

참조 자료

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