As the default SQL_Latin1_General_CP1_CI_AS
collation of SQL server can't differentiate between ss
and ß
, I want to change the collation of a specific column in a table to SQL_Latin1_General_CP437_BIN2
, as advised in here.
However, I am not sure whether this is generally a good practice or not. Also I am not sure about the implications other than the following:
- Changing the sort order: As I am never sorting the data on this column, it might not be a problem for me. However, if you think otherwise, please let me know.
- Changing case-insensitivity to case-sensitivity: As my application always provide text in lowercase, I think this change will also not be a problem for me. However, if you think otherwise, please let me know.
I am curious about the other major implications of this change, if any.
Additionally, I would also like to know which one of the following would be a most suited for this scenario:
SQL_Latin1_General_CP437_BIN
Description: Latin1-General, binary sort for Unicode Data, SQL Server Sort Order 30 on Code Page 437 for non-Unicode Data
SQL_Latin1_General_CP437_BIN2
Description: Latin1-General, binary code point comparison sort for Unicode Data, SQL Server Sort Order 30 on Code Page 437 for non-Unicode Data
SQL_Latin1_General_CP850_BIN
Description: Latin1-General, binary sort for Unicode Data, SQL Server Sort Order 40 on Code Page 850 for non-Unicode Data
SQL_Latin1_General_CP850_BIN2
Description: Latin1-General, binary code point comparison sort for Unicode Data, SQL Server Sort Order 40 on Code Page 850 for non-Unicode Data
If you think that there are other collations better suited for this scenario, please mention those as well.
Update on 19.03.2017: To anyone coming to this question:
- Must check both the answers from @srutzky and @SqlZim, as well as the related referred resources. You don't want to rush into things in this case.
- As changing collation is not for faint hearted :P, keeping a backup of table data might come in handy.
- Also check the dependencies on column, such as index and constraint; you may need to drop and create those, as it were in my case.
Have fun :)