我需要添加一个约束,将大写的特定样本数据输入到名为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' ));发布于 2016-07-07 17:51:35
我认为您需要在列级别实现排序,而不是在添加约束时。
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' ));发布于 2016-07-07 18:22:03
COLLATE不适用于IN...
检查下面的链接有更多的信息和解决方案。
http://www.sqlservercentral.com/Forums/Topic594604-338-1.aspx
https://stackoverflow.com/questions/38242226
复制相似问题