gpt4 book ai didi

sql - 土耳其语 SQL 排序规则问题(土耳其语 "I")

转载 作者:行者123 更新时间:2023-12-02 23:51:52 25 4
gpt4 key购买 nike

我的 MSSQL 数据库设置为任何土耳其语排序规则时遇到问题。由于“Turkish I”问题,我们所有包含“i”的查询都无法正常工作。例如,如果我们有一个名为“Unit”的表,其中定义了“UnitID”列,则查询“select unitid from unit”将不再有效,因为“id”中的小写“i”与定义的大写字母不同我在“UnitID”中。错误消息将显示“无效的列名称 'unitid'。”

我知道发生这种情况是因为在土耳其语中,字母 i 和 I 被视为不同的字母。但是,我不确定如何解决这个问题?无法检查 DB 中的所有 1900 个 SP 并更正“i”的大小写。

任何帮助,甚至可以使用其他排序规则代替土耳其语但支持其字符集的建议,我们将不胜感激。

最佳答案

事实证明,最好的解决方案实际上是重构所有 SQL 和代码。

在过去的几天里,我编写了一个重构应用程序来修复所有存储过程、函数、 View 、表名,使其保持一致并使用正确的大小写,例如:

select unitid from dbo.unit 

将更改为

select UnitId from dbo.Unit

然后,应用程序还会检查代码并替换任何出现的存储过程及其参数,并更正它们以匹配数据库中定义的大小写。应用程序中的所有数据表都设置为不变的区域设置(感谢 FXCop 指出所有数据表..),这可以防止代码内的调用必须区分大小写。

如果有人想要该应用程序或对此过程有任何建议,您可以通过 dotnetvixen@gmail.com 与我联系。

关于sql - 土耳其语 SQL 排序规则问题(土耳其语 "I"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780671/

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