曾经有个达思sql数据库修复软件的用户在恢复用友数据库时,还原到用友环境时,发现菜单重复,一个按钮变出好几个相同的按钮,就像孙悟空拔出毫毛变出好多个小孙悟空,一直在捉弄那个不会处理重复数据的抓耳挠腮的老妖精。本文介绍处理重复数据的处理方法。

一、找出可以插入重复数据的表

use [你要处理的数据库]

-----------------------------------------------------------------------------------

select id,name from sysobjects where id in(

SELECT object_id FROM sys.indexes where object_id not in(

SELECT object_id FROM sys.indexes where is_unique=1 or is_primary_key=1 or is_unique_constraint=1)

)  and xtype='U' order by name

-----------------------------------------------------------------------------------

再次过滤出哪些表存放有数据

-----------------------------------------------------------------------------------

SELECT object_name (i.id) TableName,

rows as RowCnt

FROM sysindexes i

INNER JOIN sysObjects o

ON (o.id = i.id AND o.xType = 'U')

WHERE indid < 2 and RowCnt>0 and i.id in(

select id from sysobjects where id in(

SELECT object_id FROM sys.indexes where object_id not in(

SELECT object_id FROM sys.indexes where is_unique=1 or is_primary_key=1 or is_unique_constraint=1)

)  and xtype='U'

)

ORDER BY RowCnt desc

-----------------------------------------------------------------------------------

二、处理重复数据的表,使相同记录只留一条

案例处理:重复数据处理测试.dbo.UA_Log_Ex 表有记录 520714条

去重查询方法:

USE [重复数据处理测试]

GO

-----------------------------------------------------------------------------------

SELECT [cAcc_Id]

,[cSub_Id]

,[cUser_Id]

,[cAuth_Id]

,[cStation]

,[dInTime]

,[dOutTime]

,[iLogId]

,[iyear]

,[Success]

FROM 重复数据处理测试.dbo.UA_Log_Ex

group by

[cAcc_Id]

,[cSub_Id]

,[cUser_Id]

,[cAuth_Id]

,[cStation]

,[dInTime]

,[dOutTime]

,[iLogId]

,[iyear]

,[Success]

-----------------------------------------------------------------------------------

把所有字段用group by 就能过滤出唯一的记录

看处理后,记录数量减半,数量为260357条

把过滤后的记录插入一张临时表重复数据处理测试.dbo.TempTable,这个表会自动生成

USE [重复数据处理测试]

GO

-----------------------------------------------------------------------------------

SELECT [cAcc_Id]

,[cSub_Id]

,[cUser_Id]

,[cAuth_Id]

,[cStation]

,[dInTime]

,[dOutTime]

,[iLogId]

,[iyear]

,[Success]

into 重复数据处理测试.dbo.TempTable

FROM 重复数据处理测试.dbo.UA_Log_Ex

group by

[cAcc_Id]

,[cSub_Id]

,[cUser_Id]

,[cAuth_Id]

,[cStation]

,[dInTime]

,[dOutTime]

,[iLogId]

,[iyear]

,[Success]

-----------------------------------------------------------------------------------

结果如下

最后一步,把原表数据清空,把重复数据处理测试.dbo.TempTable表数据搬回来

delete FROM [重复数据处理测试].[dbo].[UA_Log_Ex]   --删除原表数据

把数据从重复数据处理测试.dbo.TempTable表数据搬回来

insert into [重复数据处理测试].[dbo].[UA_Log_Ex]

SELECT [cAcc_Id]

,[cSub_Id]

,[cUser_Id]

,[cAuth_Id]

,[cStation]

,[dInTime]

,[dOutTime]

,[iLogId]

,[iyear]

,[Success]

FROM [重复数据处理测试].[dbo].[TempTable]

查看结果:

到此就处理结束了

三、总结

1、 过滤重复记录查询用 group by 所有字段

2、 把过滤结果插入新临时表 into  Temptable

3、 清除原表数据 delete from table

4、 把临时表数据搬回原始表,用 insert into 原表

技术交流:QQ55356052 遇到问题,请拨打达思数据恢复中心电话:400-700-0017

sql数据库修复技巧:用达思sql数据库修复软件时表重复怎么搞办?相关推荐

  1. 达思SQL数据库修复软件1.7(支持碎片重组、支持勒索病毒加密的sql数据库修复软件)

    达思SQL数据库修复软件(支持碎片重组,支持勒索病毒加密的修复) 达思SQL数据库修复软件 D-Recovery for MS SQL Server 界面 达思SQL数据库修复软件(支持碎片重组,支持 ...

  2. D-RecoverySQLServer2019达思SQL数据库修复软件升级至3.0版

    一.支持的SQL数据库版本: 达思SQL数据库修复软件2019在功能上支持几乎所有的Microsoft SQL Server版本,如: 7.0.2000.2005.2008.2008R2.2012.2 ...

  3. 一卡通综合管理平台中了后缀.[mr.hacker@tutanota.com]的勒索病毒加密的数据库怎么用达思SQL数据库修复软件完美修复?

    用达思SQL数据库修复软件怎么修复中了后缀.[mr.hacker@tutanota.com]的勒索病毒加密的数据库?(一卡通综合管理平台) 2.33GB的sql数据库被后缀.[mr.hacker@tu ...

  4. 达思SQL数据库修复软件1.7(支持碎片重组、支持勒索病毒加密的sql数据库修复软件)...

    达思SQL数据库修复软件(支持碎片重组,支持勒索病毒加密的修复) 详细介绍 达思SQL数据库修复软件 D-Recovery for MS SQL Server 界面 达思SQL数据库修复软件(支持碎片 ...

  5. 【SQL开发实战技巧】系列(二):简单单表查询

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  6. 使用达思SQL数据库修复软件导出数据库时的接收数据的数据库如何清空表数据?...

    清空表数据,保留视图,存储过程,函数,以及保留表约束.触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳.对用友.金蝶等数据库恢复有时候能达到好的效果. 清除表数据有两种方法: 一种用 ...

  7. 使用达思SQL数据库修复软件导出数据库时的接收数据的数据库如何清空表数据?

    清空表数据,保留视图,存储过程,函数,以及保留表约束.触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳.对用友.金蝶等数据库恢复有时候能达到好的效果. 清除表数据有两种方法: 一种用 ...

  8. 两场直播丨易鲸捷SQL编译器、达梦DM8数据库体系结构

    1. 易鲸捷HTAP融合型分布式数据库EsgynDB SQL编译器详解 2.  达梦DM8数据库的体系结构介绍

  9. 【SQL开发实战技巧】系列(三十七):数仓报表场景☞从表内始终只有近两年的数据,要求用两列分别显示其中一年的数据聊行转列隐含信息的重要性

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

最新文章

  1. Python 刷英语六级段落匹配仅需 3 秒?
  2. Java中实用类:Date、Calendar、Math、Random、String、StringBuffer的用法
  3. 计算机系统结构sw指令集,自考02325计算机系统结构复习资料六
  4. LeetCode 20. 有效的括号(栈)
  5. Nginx Learning (1)
  6. 差速移动机器人之位姿整定
  7. MySQL中的B+树索引结构
  8. Kafka学习笔记: Kafka 百惑梳理
  9. 举头望明月,低头敲代码
  10. win10双显示屏,分屏显示内容
  11. 一张图读懂一个产业短视频第4期
  12. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)
  13. 融云一站式「云市场」上线,携手生态伙伴,共建价值平台
  14. [MATLAB] 读取ASII文件中的复数数据
  15. c++学习笔记(6)
  16. python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
  17. 【工业大数据】工厂大数据之数据源分析;如何挖掘并驾驭大数据的价值,成为“大数据企业”?
  18. 微信开发者工具更换存储目录将C盘数据User Data迁移到D盘
  19. 路由环路的产生及解决
  20. BeanFacotry中的ApplicationContext

热门文章

  1. 酒吧管理系统如何选择
  2. 说一说美国大学常用的课本吧,各位想自学的可以参考
  3. consul健康检查
  4. python 3.8+vscode 无法启动jupyter kernal问题
  5. CVE-2021-41773漏洞复现
  6. c语言开发exporter,prometheus数据采集exporter全家桶
  7. Datawhale-mysql-08
  8. 计算机网络基础知识(笔记)
  9. 六安计算机职称考试时间,安徽六安2020年中级会计职称考试时间已公布!
  10. 网页游戏服务器安装包,网页游戏[窝窝世界]一键启动服务端+全套组件+启动教程+GM工具...