首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server排序规则区分大小写

问Server排序规则区分大小写
EN

Stack Overflow用户
提问于 2014-03-31 11:42:36
回答 2查看 796关注 0票数 2

我需要确定SQL 2012中数据库的排序,并从中提取区分大小写的内容。我该怎么做呢?在我知道了collasion大小写敏感性之后,我需要在C#中使用它。大小写敏感性与C#之间是否存在映射?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-31 11:47:58

你的问题从根本上讲是有缺陷的,因为它将一个排序规则的所有特征简化为只对大小写敏感。在这种假设下编写代码将导致错误的代码,而我只有两个单词: add:土耳其I。要正确,您必须在C#代码中使用与数据库中的排序规则相同的排序规则,而不是简单地使用ToLowerCase()或ToUpperCase()。

我问如何将它映射到C#

考虑到Server支持的排序规则列表是已知的和固定的(对于每个版本),我建议对从Server返回的校对名称到C#文化名称的映射进行硬编码。您只需构建一次列表,构建起来就相当容易。您将需要以某种方式处理可能附带新排序规则的Server的未来版本。

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

票数 5
EN

Stack Overflow用户

发布于 2014-03-31 11:46:42

大小写敏感性与C#之间是否存在映射?

是的,鉴于这一点:

http://technet.microsoft.com/en-us/library/ms174396.aspx

对于具有默认排序规则的属性。

因此,有一个映射。只是不像你想要的那样简单。

但是没有关联-- Server映射非常详细。名字比较是最好的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22760687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档