sql 服务器中列中新值的唯一键约束

Unique key constraint in sql server for new values in a column

我想在我的 table 上为新值实施唯一键约束,以前的数据是重复的 例如

declare @temp table
(
id int identity,
PolicyNO varchar(30)
)
insert into @temp values('abc')
insert into @temp values('abc')
insert into @temp values('abc')

现在我想在@temp table 上添加唯一约束。 id=3 或更大的新记录必须是唯一的,这里第三条记录应该限制插入

ALTER TABLE @TEMP   
ADD CONSTRAINT Unique_PolicyNo UNIQUE (PolicyNO ) where id>3

类似的事情我在语法方面遇到了麻烦任何帮助将不胜感激。

试试这个:

CREATE TABLE dbo.temp 
(
id int identity,
PolicyNO varchar(30)
)
insert into  dbo.temp  values('abc')
insert into  dbo.temp  values('abc')
insert into  dbo.temp  values('abc')


CREATE UNIQUE NONCLUSTERED INDEX [IX__tem] 
ON  dbo.temp  (PolicyNO)
WHERE id>3

然后尝试两次插入一个新值。

CREATE UNIQUE NONCLUSTERED INDEX [IX__tem] 
ON  dbo.temp  (PolicyNO)
WHERE id>3 AND PolicyNO IS NOT NULL

为了允许插入 null 个值。