증상
하나 이상의 인덱스가 빌드된 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 2016 SP1용 누적 업데이트 6
SQL Server 2014 SP2용 누적 업데이트 8
SQL Server 2014 SP1용 누적 업데이트 7
SQL Server용 누적 업데이트 정보:
SQL Server에 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스와 모든 보안 수정 사항이 포함되어 있습니다. SQL Server에 대한 최신 누적 업데이트를 확인하세요.
상태
Microsoft는 "적용 대상" 섹션에 나열된 Microsoft 제품에서 이 문제를 확인했습니다
참조 자료
Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.