【发布时间】:2011-09-06 03:59:12
【问题描述】:
我有兴趣在创建与该列的排序规则不同的索引时为该列指定排序规则吗? 而在索引的时候,字符串数据是按照列排序还是按照数据库排序呢?
【问题讨论】:
我有兴趣在创建与该列的排序规则不同的索引时为该列指定排序规则吗? 而在索引的时候,字符串数据是按照列排序还是按照数据库排序呢?
【问题讨论】:
您可以使用所需的排序规则创建计算字段并在该字段上创建索引。
【讨论】:
PERSISTED 在计算列上创建索引。
我不相信你可以。尽管 COLLATE 单独记录,但您会注意到仅列出了 3 个可能发生的位置:
请注意,例如,在CREATE TABLE:
<column_definition> ::=
column_name <data_type>
[ FILESTREAM ]
[ COLLATE collation_name ]
...
明确提到了 COLLATE 子句。
而在CREATE INDEX:
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
...
请注意,此处允许的只是列 - 不是列定义,也不是表达式。
我相信索引中每一列的排序规则都遵循相应表中基础列的排序规则。据我所知,除了在 CREATE/ALTER 表语句期间为列提供默认排序规则之外,数据库排序规则的使用并不多。
【讨论】:
尝试创建一个索引视图并将排序规则添加到 select 语句中的列中。
【讨论】: