我想知道在创建索引时是否有可能为列指定不同于该列排序规则的排序规则? 并且在进行索引后,字符串数据是按照列的排序规则还是数据库的排序规则进行排序?
您可以使用所需的排序规则创建计算字段,并在该字段上创建索引。
我不相信你能。尽管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 ] )
...
我认为索引中每列的排序方式遵循适当表格中底层列的排序方式。据我所知,数据库排序方式不太常用,只有在创建/更改表语句期间提供默认排序方式给列时才会使用。