2016-07-07 69 views
0

我需要添加一个约束,以大写形式输入特定样本数据到名为State的列。这是我试过的。但它会返回错误消息“关键字'COLLATE'附近的语法错误。”如何在约束中使用collat​​e?

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')); 

回答

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')); 
+0

该列的输入是仅这些。 'QLD','NSW','VIC','TAS','SA','WA','NT','ACT'。 – Ayyub