FIX: Code Point Comparison Semantics for SQL_Latin1_General_Cp850_BIN Collation

This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 363299 (SQL Server 8.0)
When you compare two Unicode strings by using the SQL_Latin1_General_Cp850_BIN collation, SQL Server is designed to compare the first character of each string, and then continue to perform a binary comparison of the remainder of the strings in a byte-by-byte manner. This can cause Unicode data to be sorted in a manner that you might not expect, if you are unfamiliar with these semantics.

Service pack information

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 How to obtain the latest SQL Server 2000 service pack

Hotfix information

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version         Size             File name   -----------------------------------------------------------------   03-Mar-2003  19:15  2000.80.780.0   7,516,241 bytes  Sqlservr.exe     				
Note: Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.
This hotfix introduces a new collation, SQL_Latin1_General_Cp850_BIN2. The semantics of the new SQL_Latin1_General_Cp850_BIN2 collation compares the two strings character by character. The characters are compared by using the Unicode code point.

Code point is a numeric value in Unicode encoding, or in a code page that corresponds to a character. For example, in this new collation, character U-0140 is greater than U-0041, even though the in-memory representation of them is 0x4001 and 0x4100.
For more information, visit the following Microsoft Web sites:

Specifying the Default Collation for an Instance of SQL Server

Specifying Collations

Article ID: 816039 - Last Review: 02/27/2014 18:43:15 - Revision: 4.4

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000, Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Enterprise Edition 64-bit

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB816039