如何在约束中使用整理?

时间:2016-07-07 09:41:24

标签: sql sql-server sql-server-2014 collation

我需要添加一个约束,以大写形式将特定样本数据输入到名为State的列中。这是我试过的。但它返回错误消息“关键字'COLLATE'附近的语法不正确。”

ALTER TABLE [Client]
ADD CONSTRAINT [client_statecheck]
CHECK COLLATE  SQL_Latin1_General_CP1_CS_AS (State in('QLD', 'NSW', 'VIC','TAS', 'SA', 'WA', 'NT', 'ACT' ));

2 个答案:

答案 0 :(得分:0)

我认为你需要在列级别实现COLLATION,而不是在添加约束时。

   ALTER TABLE Client ALTER COLUMN State 
                    varchar(10) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL;
    ALTER TABLE [Client]
    ADD CONSTRAINT [client_statecheck]
    CHECK (State in('QLD', 'NSW', 'VIC','TAS', 'SA', 'WA', 'NT', 'ACT' ));

答案 1 :(得分:0)

  

COLLATE不适用于IN ...

检查以下链接有更多信息和解决方案。

http://www.sqlservercentral.com/Forums/Topic594604-338-1.aspx