Ale*_*bin 10 sql-server collation sql-server-2012
在安装 SQL Server 2012 期间,在 Collation 选项卡中,我可以在French_CI_AS和French_100_CI_AS之间进行选择。
它们是什么意思,哪个是新的?当没有代码时,它是比 100 新还是旧?
Nat*_*lly 13
没有代码的是版本 90 (SQL Server 2005) 排序规则,由以前版本的 Windows / SQL Server 使用。包含 100 的排序规则较新 (SQL Server 2008)。
此处对SQL Server 2008 文档中的差异进行了一些概述,但并未详细介绍。
如果您正在开发一个新的应用程序,您可能会发现 100 版本的排序稍微更合乎逻辑(特别是对于不寻常的字符)。但是,如果您有任何其他 SQL Server 与 French_CI_AS 一起运行,最好与其保持一致。
SQL Server 必须对排序规则进行版本控制。由于排序规则决定了数据库中持久化数据的排序顺序,因此必须保证排序规则在版本之间保持稳定。否则,新版本的 Windows 的排序规则更改(例如,修复排序规则中的错误)将导致数据库中的两行在发布之前和之后以不同的方式排序。这可能听起来微不足道,但实际上它意味着索引损坏,因为项目应按 A > B 排序(根据新的、固定的整理规则),但在数据库中却显示为 B > A(根据旧的,越野车,整理规则)。因此,SQL Server 必须在每次发布时对 Windows 排序规则进行快照,并将发布版本号粘贴在排序规则名称中(因为名称没有明确的版本控制方案)。
您选择的归类受许多因素的影响。考虑到如果您与旧服务器交互以交换数据,它可能没有您使用的最新排序规则。