码迷,mamicode.com
首页 > 数据库 > 详细

【sql server】"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案

时间:2019-04-30 23:19:08      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:delete   情况   sql语句   多个   导入数据   prim   style   image   weight   

#事故现场:

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】"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案

标签:delete   情况   sql语句   多个   导入数据   prim   style   image   weight   

原文地址:https://www.cnblogs.com/willingtolove/p/10798210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!