我在一个表中插入了几行,使用了一个具有唯一键约束的列(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完成此操作的任何想法吗?
答案 0 :(得分:2)
我认为您在设置SET IDENTITY_INSERT mytable ON后设置了手动添加值的An Identity Column令人困惑;具有唯一约束的列定义在其上。具有唯一约束的列永远不允许您添加重复值
如果您确实希望能够在具有唯一约束的列中添加重复值,则可以简单地删除唯一约束,因为当您没有唯一值时,为什么具有唯一约束。
您可以使用以下语句
ALTER TABLE TableName
DROP CONSTRAINT uc_ConstraintName