我已将多行插入到一个表中,使用具有唯一键约束的列 (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”中插入重复键。
任何想法如何通过更新来完成?
最佳答案
我认为您对在将 SET IDENTITY_INSERT mytable 设置为 ON 后设法手动添加值的标识列感到困惑;带有定义了唯一约束的列。具有唯一约束的列永远不允许您添加重复值。
如果您确实希望能够在具有唯一约束的列中添加重复值,您可以简单地删除唯一约束,因为当您没有唯一值时为什么有唯一约束。
您可以使用以下语句降低唯一约束,
ALTER TABLE TableName
DROP CONSTRAINT uc_ConstraintName
关于sql-server - 如何更新具有唯一键约束的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19597421/