4

我已经在一个表中插入了几行,使用具有唯一键约束的列 (theId) 中的重复项。我通过将 IDENTITY_INSERT 设置为关闭然后打开来做到这一点。

我尝试了同样的技术来更新,因为我需要更改那些欺骗值但它不起作用:

SET IDENTITY_INSERT mytable OFF
update mytable set
theId = 5
WHERE mytableId in (40, 41)
SET IDENTITY_INSERT mytable ON

错误:违反 UNIQUE KEY 约束“XI_mytale_mytableId_othercolumn_U”。无法在对象“dbo.mytable”中插入重复键。

有什么想法可以通过 UPDATE 来完成吗?

4

1 回答 1

2

我认为您对在设置 SET IDENTITY_INSERT mytable ON 后设法手动添加值的身份列感到困惑;带有定义了唯一约束的列。具有唯一约束的列绝不允许您添加重复值。
如果您确实希望能够在具有唯一约束的列中添加重复值,则可以简单地删除唯一约束,因为当您没有唯一值时为什么要有唯一约束。
您可以使用以下语句来降低唯一约束,

ALTER TABLE TableName
DROP CONSTRAINT uc_ConstraintName
于 2013-10-25T19:05:13.580 回答