创建表时,COLLATE 子句是可选的。所以,在:
CREATE TABLE T1 (
F1 varchar(50) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
F2 varchar(50) NOT NULL
)
F2 的排序规则将由数据库默认值决定。
过去我们的团队总是使用默认排序规则。但是,我们现在有一些列需要明确指定排序规则。我们正在考虑是否更改我们的标准以始终指定排序规则,并寻找可能有助于此决定的任何其他信息。
所以:
- 始终指定排序规则的优点/缺点是什么?
- 如果我们总是指定排序规则,是否有任何需要注意的问题?
可能相关的附加信息:
- 我们部署到多个客户端,并非所有客户端都会同时升级。
- 一些客户端在他们的服务器上确实有不同的排序规则配置。
- 我们的应用程序使用 Ansi 字符串,而对 Unicode 的任何考虑都还有很长的路要走。
- 我们使用 MS SQL Server 2005 及更高版本(尽管如果可能的话,我更愿意将问题保持在任何支持排序规则的平台上)。
请注意:这个问题不是询问如何解决排序规则冲突,或更改现有的服务器/数据库/列排序规则。(已经有很多了。)