sql server - Difference between SQL_Latin1_General_Cp437_CI_AS_KI_WI and SQL_Latin1_General_Cp850_CI_AS_KI_WI -


i reviewing article titled selecting sql server collation, trying decide 1 use database, , noticed 2 seemed identical. there sort of difference between these 2 isn't listed on page?

sql_latin1_general_cp437_ci_as_ki_wi

sql sort order id = 32
sort order name = nocase.437
description = dictionary order, case-insensitive

sql_latin1_general_cp850_ci_as_ki_wi

sql sort order id = 42
sort order name = nocase.850
description = dictionary order, case-insensitive

the numbers in cp437 , cp850 refer code pages, , using wrong code page result in curious results! highly recommend use standard collation sql_latin1_general_cp1_ci_as (or _ai accent insensitivity.) picking collation tricky affair, , if have lots of unicode data, using sql collation can cause performance issues (as reported some) indexes not cover unicode characters in nvarchar fields, or can cause unusual sort orders when mixed unicode , non-unicode data present. see collation types more information.

i recommend either stick sql server default, listed above, or use windows collation based on careful selection. notice english (united states) default, i'm unsure myself of whether or not collation made unicode-supporting collation or not.

other pages wikipedia article on ascii , extended ascii explain code pages , history.


Comments