如何在sql 2005或2008中使列区分大小写

时间:2009-04-30 06:44:26

标签: sql sql-server sql-server-2005 sql-server-2008

是否可以根据列更改默认排序规则?我想让1列区分大小写,但所有其他区域不是

3 个答案:

答案 0 :(得分:18)

ALTER TABLE ALTER COLUMN允许更改单个列的排序规则:

alter table Foo alter column Bar ntext collate Latin1_General_CS_AS 

(整理可能不正确)

答案 1 :(得分:2)

我不是特别了解SQL Server,但普遍接受的DBMS实践(兼容性)将是:

  • 在表格上插入和更新触发器,以便将它们存储在您想要的情况下。
  • 使用生成的列存储您想要的列的另一个副本。

在SQL Server中可能有更快的方法,但是您应该小心将工作负载推送到SELECT语句中的解决方案 - 它们永远不会很好地扩展。作为插入和更新的一部分,这几乎总是更好,因为这是数据更改的唯一时间 - 这样做可以最大限度地减少额外的工作量。

答案 2 :(得分:0)

您的问题的答案是肯定的,已在上文Anton Gogolev中说明。

其他信息:

以下是如何根据SQL Server的版本找到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