증상
하나 이상의 인덱스가 기본으로 제공 되는 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 켜져 있으면 char NULL이 아닌 열과 동일 하 게 작동 합니다. 값은 열 크기에 따라 오른쪽으로 채워집니다. Char NULL 열을 만들 때 ANSI_PADDING이 해제 되어 있는 경우, ANSI_PADDING 설정이 해제 된 varchar 열 처럼 작동 합니다. 후행 공백이 잘립니다.
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 해결 되었습니다.
SQL Server 2016 SP1 용 누적 업데이트 6
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어에 대해 알아봅니다.