SQL Server中的排序SQL_Latin1_General_CP1_CS_AS和Latin1_General_CS_AS排序之间有什么区别?
作为默认的SQL_Latin1_General_CP1_CI_ASSQL服务器的排序规则不能区分ss和ß,我想换一个特定列的排序规则在表中SQL_Latin1_General_CP437_BIN2,如建议在这里.
但是,我不确定这是否通常是一种好的做法.此外,我不确定除以下之外的其他影响:
我很好奇这个变化的其他主要影响,如果有的话.
此外,我还想知道以下哪一个最适合这种情况:
SQL_Latin1_General_CP437_BIN
描述: Latin1-常规,Unicode数据的二进制排序,SQL Server在代码页437上的排序顺序30用于非Unicode数据
SQL_Latin1_General_CP437_BIN2
描述: Latin1-常规,Unicode数据的二进制代码点比较排序,SQL Server在代码页437上的排序顺序30用于非Unicode数据
SQL_Latin1_General_CP850_BIN
描述: Latin1-常规,Unicode数据的二进制排序,SQL Server在代码页850上的排序顺序40,用于非Unicode数据
SQL_Latin1_General_CP850_BIN2
描述: Latin1-常规,Unicode数据的二进制代码点比较排序,SQL Server在代码页850上的排序顺序40,用于非Unicode数据
如果您认为其他排序规则更适合此方案,请同时提及这些排序规则.
2017年3月19日更新: 对于提出此问题的任何人:
玩得开心 :)
这个问题“需要一个不区分大小写的排序规则,其中 ss != ß ”为varchar类型列解决了这个问题,但我的必须是nvarchar.
据我所知,SQL_Latin1_General_Cp437_BIN区分ß和ss。但它也区分大小写。我的是一个主键列,它也需要区分大小写:
我需要例如weiß/Weiß被认为是平等的,还有weiss/ Weiss,但不是weiß/weiss也不是Weiß/Weiss也不是weiß/Weiss等。
我已经为此搜索了很多,真的让我在这里倒霉吗?必须有很多人处于相同的情况,我简直不敢相信这无法解决。