使用排序规则 (SQL Server Compact)

排序规则基于特定语言和区域设置的准则,指定如何对字符串数据进行排序和比较的规则。

SQL Server Compact 提供了对 Windows 排序规则的支持。有关 SQL Server Compact 中支持的 Windows 排序规则名称的列表,请参阅支持的排序规则 (SQL Server Compact)。 

SQL Server Compact 4.0 支持区分大小写的排序规则。在数据库级别设置是否区分大小写。换句话说,数据库的用户表中的所有字符串列(数据类型为 nchar、nvarchar 和 ntext 的列)具有与在数据库级别所指定的设置相同的区分大小写设置。此外,字符串列上的索引具有与在数据库级别所指定的设置相同的区分大小写设置。

但是,在 SQL Server Compact 数据库中不将对象名称(如表名)、语言关键字、函数和视图视为区分大小写,即使排序规则区分大小写。此功能与 SQL Server 不一致,但是此行为与指定数据库的排序规则仅用于用户数据比较的 SQL 标准一致。

连接到区分大小写的数据库

可以连接到任何区分大小写的 SQL Server Compact 数据库,就像连接到任何其他 SQL Server Compact 数据库。

SQL Server Compact 4.0 提供对新的 Boolean 连接字符串属性“Case Sensitive”或“SSCE:Case Sensitive”的支持,以确定数据库排序规则是否区分大小写。如果尝试连接到在连接字符串中包含“Case Sensitive”属性的现有 SQL Server Compact 数据库,则 SQL Server Compact 4.0 忽略此设置。换句话说,“Case Sensitive”属性是一个数据库创建时选项,连接到现有数据库时将忽略它。如果在创建数据库时不指定区分大小写,则默认情况下将创建不区分大小写的数据库。

“Case Sensitive”属性是 SQL Server Compact 4.0 中引入的新功能,任何早期版本都不支持它。

创建区分大小写的数据库

SQL Server Compact 支持通过 API 调用为新数据库指定区分大小写的排序规则。

可以使用新的 Boolean 连接字符串属性“Case Sensitive”或“SSCE:Case Sensitive”确定数据库排序规则是否区分大小写。对于本机编程,作为 DBPROPSET_SSCE_DBINIT 属性集一部分的新属性 DBPROP_SSCE_DBCASESENSITIVE 确定数据库排序规则是否区分大小写。

将 Case Sensitive 设置为 true 时,将在数据库中重新生成字符串列上的索引。

还可以通过使用 CREATE DATABASE (SQL Server Compact) 语句的 COLLATE (SQL Server Compact) 子句为新数据库指定排序规则。但是,在这种情况下,不区分大小写 (CI) 选项是唯一受支持的选项。

还可以使用 Visual Studio 2010 SP1 按以下方式创建区分大小写的数据库:

  1. 在**“服务器资源管理器”中,右键单击“数据连接”节点,然后从上下文菜单中选择“添加连接”**。

  2. 在**“添加连接”对话框中,确保“数据源”**是 MicrosoftSQL Server Compact 4.0。如果数据源不是 SQL Server Compact 4.0,请按以下步骤操作:

    • 在**“添加连接”对话框中,单击“更改”**按钮。

    • 从数据源中选择 MicrosoftSQL Server Compact 4.0。

    • 如果要默认使用 SQL Server Compact 4.0,请选中**“始终使用此选择”**框。

    • 在**“更改数据源”对话框中单击“确定”**。

  3. 在**“添加连接”对话框中,单击“创建”**。

  4. 在**“创建新的 SQL Server Compact 数据库”对话框中,填写数据库路径并选中“区分大小写”**框。在指定的位置创建的数据库是区分大小写的数据库。

请参阅

概念

国际注意事项 (SQL Server Compact)