创建表时,COLLATE 子句是可选的。所以,在:
CREATE TABLE T1 (
F1 varchar(50) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
F2 varchar(50) NOT NULL
)
F2 的排序规则将由数据库默认值确定。
过去我们的团队总是使用默认的排序规则。但是,我们现在有一些列需要显式指定排序规则。我们正在考虑是否将我们的标准更改为always指定排序规则并查找可能有助于此决策的任何其他信息。
So:
- 始终指定排序规则有哪些优点/缺点?
- 如果我们总是指定排序规则,是否有需要注意的问题?
可能相关的附加信息:
- 我们部署到多个客户端,并不是所有客户端都会同时升级。
- 某些客户端在其服务器上确实有不同的排序规则配置。
- 我们的应用程序使用 Ansi 字符串,任何对 Unicode 的考虑都是very离这儿很远。
- 我们使用 MS SQL Server 2005 及更高版本(尽管如果可能的话,我更愿意将问题保持在任何支持排序规则的平台上)。
请注意: 这个问题是not询问如何解决排序规则冲突,或更改现有的服务器/数据库/列排序规则。 (已经有很多了。)
您正在构建一个部署在客户端计算机上的应用程序。您应该明确您的排序规则。
例如,默认排序规则不区分大小写。如果客户端(无论出于何种原因)希望在其数据库中默认区分大小写,那么不同机器上的比较将会有所不同。
您还遇到了调试问题。如果客户端按顺序获取结果,您的测试/开发系统可能会按不同的顺序获取结果。这可能会妨碍调试和客户支持。
最后,您最好拥有一致的软件来进行调试、维护和支持。如果特定客户需要不同格式的数据,则为该客户定制系统。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)