sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表
来源:互联网 发布:tcl java岗位怎么样 编辑:程序博客网 时间:2024/05/16 10:38
sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表.
错误:
先确认一下表中有没有主键,要是没有就得使用临时表来实现删除重复的行。
方法一:
DELETE FROM 表名 WHERE 主键字段名 IN(
SELECT MAX(主键字段名) AS 主键字段名 FROM 表名 GROUP BY 其他字段 HAVING COUNT(1)>1)
方法二:
SELECT 字段列表 INTO #T FROM 表名 GROUP BY 字段列表
--先删除原来的数据表,再插入不重复的语句
TRUNCATE TABLE 表名
INSERT INTO 表名 SELECT * FROM #T
DROP TABLE #T
示例:
方法一:
delete from tab_test2 where id=(select max(id) from tab_test2 group by id,uid having count(1)>1)
方法二:注意:#t是临时表,在tempdb数据库中的临时表节点下可以找到,sqlserver服务重启就会消失的表.
select id,uid into #t from tab_Test2 group by id,uid
truncate table tab_Test2
insert into tab_Test2 select * from #t
msdn:
在进行SQL数据库维护时,发现有几行记录明显有错误却删除不了,一执行删除命令就提示“已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(X行)。”表现为在:数据库中出现了重复的键值或数据,当试图删除时错误提示信息就出来了。建立的几个表都没有关键字,设置好关键字后问题解决。
微软的官方网站对此问题也有说明,BUG: 您可能会收到当您尝试使用 SQL Server Management Studio 更新 SQL Server 2005 中的表的行时 微软给了个替代方法:要变通解决此问题,创建 SQL Server Management Studio 中的在新的查询窗口。 然后,运行 SQL UPDATE 语句更新表中的行。
方法一:
1、单击SQL Server Management Studio工具栏上的“新建查询”按钮,然后按照提示登陆要修改的数据表所在的数据库
2、然后会在数据库的编辑窗口弹出一个可以执行SQL语句的窗口,在该窗口输入以下SQL语句
delete 数据库名.表名 where 要删除的字段名 = '字段值'
例如:delete pyj_db.dbo.Cellphone_related where Cellphone_Num = '111'
方法二:
其实利用INSERT INTO 做一些小的变换,这个问题就可迎刃而解了,具体步骤如下:
先将原用的表做个备份,根据条件将满足条件的数据导到新的表来,再将原表清除,最后将备份表中的数据select过来即可。
第一步:在备份表中导入需要的数据
INSERT INTO DataFile_backup
select * from DataFile where year(consumedate)=条件
第二步:清除原表中的数据
Delete from DataFile
第三步:从备份表中导入数据
select * from DataFile
- sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表
- 错误修正:多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表.
- sqlserver中多行所有数据重复,无法更新或删除问题
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- sql在没有主键的情况下删除表中的重复字段
- sqlserver中如何删除没有主键的重复数据。
- sqlserver查询所有没有主键的表
- MSSQL如何在没有主键的表中删除重复数据
- ubuntu 12.04 在没有断开PPPOE网络连接的情况下无法关机或重启
- sqlserver 表查询锁与解锁以及删除重复数据(主键不同,其他数据都相同的数据)
- 有重复数据的表添加主键或唯一约束
- 在没有备份情况下误删除数据文件的恢复
- Ubuntu下软件无法下载或更新以及SDK无法更新的情况解决
- 关于图片在窗体显示后,无法更新或删除的问题
- 新浪微博PC客户端,(蓝星星微博客户端)VC++
- dom4j读写XML文件实例
- Eclipse Pulsar for Mobile Developers 添加提示背景色
- 关于数据库连接字符串问题(第二部分连接MySQL)
- WF4.0实战:超市收银软件
- sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表
- Teradata给表加注释的方法
- 用“字符指针变量”实现I/O格式的控制
- 2011年6月18日
- 如何成为一名优秀的软件测试工程师
- 使用yum来安装CentOS图形界面
- 关于数据库连接字符串问题(第三部分连接Oracle)
- 方法重载
- 求救:如何在Asp.net页面中实现发票的套打。这个问题困扰我好几天了