gpt4 book ai didi

c# - SQL Server 排序规则区分大小写

转载 作者:行者123 更新时间:2023-12-02 04:32:25 24 4
gpt4 key购买 nike

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

最佳答案

您的问题从根本上来说是有缺陷的,因为它将排序规则的所有特征减少到仅区分大小写。在这种假设下编写代码会导致错误的代码,而我只有两个词两个添加:Turkish I 。为了保证正确性,您必须在 C# 代码中使用与数据库中相同的排序规则,而不是简单地使用 ToLowerCase() 或 ToUpperCase()。

I ask how to map it to C#

鉴于 SQL Server 支持的排序规则列表是已知且固定的(对于每个版本),我建议对 SQL 返回的映射进行硬编码 collation nameC# culture name 。您只需构建一次列表,构建起来相当容易。您需要以某种方式处理可能附带新排序规则的 SQL Server future 版本。

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

关于c# - SQL Server 排序规则区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com