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
个值。
我想在我的 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
个值。