Article ID: 308113
Article Last Modified on 10/3/2003
APPLIES TO
- Microsoft SQL Server 2000 Standard Edition
This article was previously published under Q308113
BUG #: 355607 (SHILOH_BUGS)
SYMPTOMS
The built-in string functions REPLACE, CHARINDEX, or PATINDEX may return incorrect results when used with Unicode characters. The following example demonstrates the problem on a server with code page 1252 and the SQL_Latin1_General_CP1_CI_AS collation:
SELECT REPLACE('001002003', '002', N'asd')
The correct result should be 001asd003; instead, it returns 00asd003.
RESOLUTION
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
STATUS
Microsoft has confirmed that this is a problem in Microsoft SQL Server 2000. This problem was first corrected in Microsoft SQL Server 2000 Service Pack 2.
MORE INFORMATION
On servers with code pages that use double bytes to store characters, or on servers with code page 1252 and the Latin1_General_CI_AS collation, the following SELECT query without prefix N in any of the string constants will show the same problem:
SELECT REPLACE('001002003', '002', 'asd')
Keywords: kbbug kbfix KB308113