FIX: SQL Server 2005에서 LIKE 연산자를 사용 하는 쿼리를 실행 하면 잘못 된 결과 표시

증상

다음 시나리오를 고려하십시오. Microsoft SQL Server 2005에서는 LIKE 연산자를 사용 하는 쿼리를 실행 합니다. 쿼리의 실행 계획은 GetRangeThroughConvert 함수를 사용합니다. 쿼리를 실행 하면 잘못 된 결과가 나타날 수 있습니다. 예를 들어,이 쿼리의 실행 계획 다음과 유사할 수 있습니다.
|--Nested Loops(Inner Join, OUTER REFERENCES:([Expr1010], [Expr1011], |[Expr1012])) 
|--Merge Interval
| |--Concatenation
| |--Compute Scalar(DEFINE:(([Expr1005],[Expr1006],[Expr1004])=GetRangeThroughConvert(N'P08.89',NULL,(22))))
| | |--Constant Scan
| |--Compute Scalar(DEFINE:(([Expr1008],[Expr1009],[Expr1007])=GetRangeThroughConvert(NULL,N'P08.8?',(10))))
| |--Constant Scan
|--Index Seek(OBJECT:([TestLikeBug].[dbo].[Projects].[IX_Projects]),
SEEK:( [TestLikeBug].[dbo].[Projects].[ProjectNumber] > [Expr1010] AND
[TestLikeBug].[dbo].[Projects].[ProjectNumber] < [Expr1011]),
WHERE:(CONVERT_IMPLICIT(nvarchar(12),[TestLikeBug].[dbo].[Projects].[ProjectNumber],0) like N'P08.89%')
ORDERED FORWARD)

원인

이 문제는 SQL Server LIKE 연산자에 대 한 잘못 된 범위 조건에서 생성 하기 때문에 발생 합니다.

해결 방법

서비스 팩 정보

이 문제를 해결 하려면 SQL Server 2005 최신 서비스 팩을 구하십시오. 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 다음 문서를 확인하십시오.
913089 는 SQL Server 2005 최신 서비스 팩을 구하는 방법

상태

Microsoft는 "적용 대상" 절에 나열 된 제품의 문제 임을 확인 했습니다. 이 문제는 SQL Server 2005 서비스 팩 3에서 처음 수정 되었습니다.

자세한 내용

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

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

피드백