Sql server 为SQL Server实例和数据库选择哪种排序规则?
我正在开发一个基于数据库SQL Server 2008 R2的Windows应用程序。 该应用程序目前出售给比利时的公司,这些公司使用四种语言:英语、法语、荷兰语和德语。不久,该应用程序将被销售到欧洲的其他国家,随后将在美国销售 以下是我问自己的问题:Sql server 为SQL Server实例和数据库选择哪种排序规则?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我正在开发一个基于数据库SQL Server 2008 R2的Windows应用程序。 该应用程序目前出售给比利时的公司,这些公司使用四种语言:英语、法语、荷兰语和德语。不久,该应用程序将被销售到欧洲的其他国家,随后将在美国销售 以下是我问自己的问题: 对于SQL server实例(按国家/地区列出): 选择哪种语言 我们是否应该在区分大小写和数据库的其他方面做出同样的选择 必须有二进制排序规则吗 对临时处理的影响(tempdb) 对于数据库 选择哪种语言 是否应考虑Windows客户端
- 对于SQL server实例(按国家/地区列出):
- 选择哪种语言
- 我们是否应该在区分大小写和数据库的其他方面做出同样的选择
- 必须有二进制排序规则吗
- 对临时处理的影响(tempdb)
- 对于数据库
- 选择哪种语言
- 是否应考虑Windows客户端应用程序使用的区域设置
- 用于开发环境和配方
- 如何通过管理所有国家/地区来开发和测试应用程序
感谢您的帮助。在SQL中使用外语或多种语言时,我建议将排序规则设置为CI_AI_SI,以防止与字符/字符串字段相关的任何特殊字符问题(即连接、强制转换等)。因此,该语言也应该是Unicode。考虑到您可能遇到的各种场景,这是一个包罗万象的场景
我还建议用nvarchar而不是标准的varchar进行编程。是的,数据大小是原来的两倍,但这应该有助于减轻存储过程中可能出现的奇怪转换。我的小贴士。当您可能在未知的sql server上部署时……我总是使用区分大小写的排序规则进行开发。为什么?我用艰苦的方式学习。早在7.0时代,我的公司就试图在公司的sql server上部署我们的数据库,他们希望区分大小写。到处都是垃圾。我们中的一些人在接下来的4天(Th、F、Sa、Su)中修复了许多区分大小写的存储过程。不知道他们为什么如此热衷于案件敏感性。几年后,当我为db编写create脚本并将排序规则设置为区分大小写时,一些jr开发人员仍在犹豫。+1@granadaCoder:始终在CS上开发。许多商业工具在CS服务器上失败了这个简单的羞耻和错误测试,因为他们的开发人员在CI服务器上工作……这个问题已经被问到了。不幸的是,简短的回答是“视情况而定”,因此您可以做的最好的事情是研究选项并进行一些快速测试,以查看哪些选项适合您的应用程序设计。我的两分钱将仅用于Unicode数据(即
nchar
和nvarchar
),并使用CI_AI排序,因为重音和大小写通常很重要。但是,由于您可以在列级别和查询中对此进行控制,因此,对于特定数据,始终可能存在例外情况。此建议的问题是,“特殊字符”(无论其含义如何)和大小写非常重要。如果我搜索西班牙语单词“mas”,我也不想得到“más”的点击率,因为这意味着不同的东西。非常正确。我没有考虑到这一点。我很高兴根据您的上述评论,我们达成了一致。谢谢你的接球!