sql server"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案
Posted willingtolove
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案相关的知识,希望对你有一定的参考价值。
#事故现场:
1、在手动修改某表中数据是,出现如下错误提示:
已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
2、表结构及数据:
#解决方法:
1、原因分析:提示被删除的行不是唯一行,检查发现:
表中出现了重复的数据({name:小红,age:10}),所以当视图删除时,会提示错误;
2、解决方法一:添加中间,使行值成为唯一值;
sql语句:
ALTER TABLE UserInfo add ID int identity primary key
效果:
3、解决方法二:先将原用的表做个备份,根据条件将满足条件的数据导到新的表来,再将原表清除,最后将备份表中的数据select过来即可;
1)、在备份表中导入需要的数据
INSERT INTO UserInfo_backup select distinct name,age from UserInfo
2)、清除原表中的数据;
delete from UserInfo
3)、从备份表中导入数据;
INSERT INTO UserInfo select name,age from UserInfo_backup
4、解决方法三:直接删除出现重复的数据;(具体看情况而定)
delete from UserInfo where name=‘小红‘ and age=10
——————————————————————————————————————————————————————
以上是关于sql server"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案的主要内容,如果未能解决你的问题,请参考以下文章
已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行,如何解决
SQL Server 删除触发器 - 引用已删除行或标记为删除的行的行句柄