SQL Server 排序规则默认为美国/英语 - 最佳实践

问题描述 投票:0回答:3

简要说明:作为美国/英语区域设置的 Windows DBA,是否值得将

Latin1_General_CI_AS
设置为新 SQL Server 版本上的系统级默认值,或者在可预见的将来坚持使用
SQL_Latin1_General_CP1_CI_AS
默认值是否更明智? 我们是否认为 MS 最终会将
Latin1_General_CI_AS
设置为美国的默认设置?

更多背景:

https://learn.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16#Server-level-collations

根据 Microsoft,如果您的 Windows 区域设置是任何英语国家(美国除外),您在安装过程中的默认 SQL Server 排序规则为:

Latin1_General_CI_AS
,但在美国,为了向后兼容,它仍然是
SQL_Latin1_General_CP1_CI_AS
。新数据库默认采用系统排序规则(除非您覆盖),等等...

我们将

SQL_Latin1_General_CP1_CI_AS
保留为我们自己的 SQL 服务器构建中的默认值,并且我们的内部数据库已使用相同的排序规则进行了发展。我们刚刚从第三方收到了第一个带有
Latin1_General_CI_AS
的数据库,这让我怀疑我们是否应该采用“更新”的整理方式,特别是如果我们在同一环境中的数据库之间进行交叉连接或交互。

我知道我们可以对不同数据库之间的连接进行整理命令,但我很好奇人们是否会抢先将

Latin1_General_CI_AS
配置为美国英语语言环境中的服务器级别默认值,以便与其他国家/地区的人们更加兼容或领先微软方面在未来的 Windows 版本中任何可能的“最终支点”。

谢谢!

sql-server windows collation
3个回答
2
投票

简要说明:作为美国/英语区域设置的 Windows DBA,是否值得将 Latin1_General_CI_AS 设置为新 SQL Server 版本上的系统级默认值

简单回答:没有。

您唯一需要关心实例排序规则的情况是现有工作负载因此而中断。 对于 DBA 来说,坚持使用旧的 SQL 排序规则而不是更好、更现代的 Windows 排序规则是风险较低的路径。

单个数据库可以采用Latin1_General_CI_AS并接受tempdb将使用SQL_Latin1_General_CP1_CI_AS,或者可以采用部分数据库包含并获取包含的数据库排序规则。


2
投票
我无法谈论安装默认值的未来变化,但是,由于在具有不同实例排序规则的组织中工作过,我建议您坚持使用适合您的组织的标准排序规则(包括事实上的排序规则)。这在美国通常是

SQL_Latin1_General_CP1_CI_AS

,因为它是安装默认值。

标准化排序规则有助于实例整合、复制等。第三方应用程序可能需要不同的排序规则。


0
投票
我有一个新服务器,我希望排序规则为 Latin1_General_CI_AS,但设置中没有允许这样做的选项,请参阅屏幕截图。

当我被迫接受Latin1_General_CP1_CI_AS时,如何将SQL中的排序规则设置为Latin1_General_CI_AS?

SQL 安装

© www.soinside.com 2019 - 2024. All rights reserved.