我想在我的表上为新值实现唯一键约束,以前的数据是重复的,例如
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
像这样的事情我在语法方面面临麻烦,任何帮助将不胜感激。
尝试这个:
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] 删除。
我来说两句