SQL Server中列中新值的唯一键约束

Khayam Khan

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

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表上添加唯一约束。id = 3或更大的新记录必须是唯一的,此处应限制插入第三条记录

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

像这样的事情我在语法方面面临麻烦,任何帮助将不胜感激。

Gotqn

尝试这个:

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值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章