【发布时间】:2010-10-22 18:46:22
【问题描述】:
是否可以根据列更改默认排序规则?我想让 1 列区分大小写,但其他所有列不区分
【问题讨论】:
标签: sql sql-server sql-server-2005 sql-server-2008
是否可以根据列更改默认排序规则?我想让 1 列区分大小写,但其他所有列不区分
【问题讨论】:
标签: sql sql-server sql-server-2005 sql-server-2008
ALTER TABLE ALTER COLUMN 允许更改单个列的排序规则:
alter table Foo alter column Bar ntext collate Latin1_General_CS_AS
(排序可能不正确)
【讨论】:
我并不特别了解 SQL Server,但普遍接受的 DBMS 做法(出于兼容性考虑)是:
在 SQL Server 中可能有更快的方法来执行此操作,但您应该小心将工作负载推入 SELECT 语句的解决方案 - 它们永远不会很好地扩展。作为插入和更新的一部分,这样做几乎总是更好,因为这是唯一一次数据更改 - 这样做可以最大限度地减少额外的工作量。
【讨论】:
你的问题的答案是肯定的,上面Anton Gogolev已经说过了。
附加信息:
您可以根据其版本找到 SQL Server 支持的排序规则列表。
select name,
COLLATIONPROPERTY(name, 'CodePage') as Code_Page,
description
from sys.fn_HelpCollations()
what is the meaning of Kanatype Sensitive KS and width sensitive
【讨论】: