SQL Server排序规则区分大小写

Yak*_*kov 2 c# sql sql-server

我需要在SQL 2012中确定数据库的排序规则,并从中提取区分大小写.我该怎么做?在我知道collasion区分大小写后,我需要在C#中使用它.SQL Server collasion区分大小写和C#之间是否存在映射?

Rem*_*anu 5

您的问题从根本上是有缺陷的,因为它将整理的所有特征都降低到仅区分大小写.在这个假设上编写代码将导致不正确的代码,我只有两个字两个附加:土耳其我.为了正确,您必须在C#代码中使用与数据库中的排序规则相同的排序规则,而不是简单地使用ToLowerCase()或ToUpperCase().

我问如何将它映射到C#

鉴于SQL Server支持的排序规则列表已知且已修复(对于每个版本),我建议将SQL返回的排序规则名称的映射硬编码为C#文化名称.你只需要构建一次列表,相当容易构建.您需要以某种方式处理可能附带新排序规则的SQL Server的未来版本.

(再次......)警告你要解决的问题远非微不足道.SQL Server 使用给定的排序规则来保留数据,这使得对排序的更改变得不可能(如果排序说明在B之后进行排序并保存数据,那么将排序更改为说明在读取持久数据之前B会导致数据损坏之前的排序,对于相等比较,考虑外键,唯一和检查约束等等).但是,平台(Windows)不时地更改排序规则设置,通常用于修复现有排序规则中的错误.您的C#文化将使用当前的平台排序规则,这可能与2008年在同一排序规则中捕获的SQL不同.在该网桥下有许多龙...