位置: 编程技术 - 正文

SQLServe 重复行删除方法(sql server删除重复数据保留一条)

编辑:rootadmin

Microsoft SQL Server 表不应该包含重复行和非唯一主键。为简洁起见,在本文中我们有时称主键为“键”或“PK”,但这始终表示“主键”。重复的 PK 违反了实体完整性,在关系系统中是不允许的。SQL Server 有各种强制执行实体完整性的机制,包括索引、唯一约束、主键约束和触发器。 尽管如此,在某些情况下还可能会出现重复的主键;如果出现此类情况,就必须清除重复主键。出现重复主键的情形之一是,在 SQL Server 外部的非关系数据中存在重复的 PK,在导入这些数据时没有强制执行 PK 唯一性。出现重复主键的另一种情形来自数据库设计错误,如没有对每张表强制执行实体完整性。   通常在尝试创建唯一索引时会发现重复的 PK,因为如果找到重复的键,唯一索引的创建即会中止,并且将显示以下消息:   Msg , Level , State 1 Create unique index aborted on duplicate key.   如果使用的是 SQL Server 或 SQL Server ,则会收到以下错误消息:   Msg , Level , State 1 CREATE UNIQUE INDEX terminated because a duplicate key was found for object name '%.*ls' and index name '%.*ls'.The duplicate key value is %ls.   本文讨论如何查找和删除表中重复的主键。但是,您应该仔细检查出现重复键的进程以避免重复出现。   更多信息   在该示例中,我们将使用下表,它具有重复的 PK 值。在该表中,主键是两列(col1、col2)。我们无法创建唯一索引或主键约束,因为这两行具有重复的 PK。该过程演示如何识别和删除重复的主键。   第一步是识别哪些行具有重复的主键值:   这将为表中的每组重复的 PK 值返回一行。此结果中的最后一列是特定 PK 值的重复数。   col1 col2   1 1 2   如果只有几组重复的 PK 值,则最佳方法是手动逐个删除它们。例如:   rowcount 值应该是给定键值的重复数减去 1。在该示例中,有 2 个重复的主键,所以 rowcount 被设置为 1。col1/col2 值来自上面的 GROUP BY 查询结果。如果 GROUP BY 查询返回多行,则“set rowcount”查询将必须为这些行中的每一行各运行一次。每次运行该查询时,将 rowcount 设置为特定 PK 值的重复数减去 1。   在删除行之前,您应该验证是否整行重复。虽然整行重复不太可能发生,但可能 PK 值重复,而整行不重复。例如一个将身份证号码作为主键的表,该表有两个具有相同号码的不同的人(即行),但每个人有唯一的属性。在这种情况下,任何引起重复键的问题可能还引起在行中放入有效的唯一的数据。在删除该数据之前,应该将该数据复制出来并保存下来以进行研究和适当的调整。  如果表中有多组完全不同的重复的 PK 值,则逐个删除它们会很费时间。在这种情况下,可使用下面的方法: 1.首先,运行上面的 GROUP BY 查询来确定有多少组重复的 PK 值及每组的重复数。   2.选择重复的键值放入临时表中。例如:   3.选择重复的行放入临时表中,以清除进程中的重复值。例如:   4.此时,holddups 表应有唯一的 PK;但是,如果 t1 有重复的 PK 而行唯一(如上面的 SSN 示例),情况就不是这样了。请验证 holddups 中的各个键是否唯一,是否没有键重复而行唯一的情况。如果是这样,您必须停在该处,确定对于给定重复的键值,您希望保留哪些行。例如,以下查询:   应为各行返回计数 1。如果结果是 1,请继续执行下面的步骤 5。如果不是 1,则存在键重复而行唯一的情况,且需要您决定要保存哪些行。通常,这将需要舍弃行或为此行创建新的唯一的键值。为 holddups 表中每个此种重复 PK 执行这两个步骤之一。   5.从原始表中删除重复的行。例如:   6.将唯一行放回原始表中。例如:   INSERT t1 SELECT * FROM holddups

推荐整理分享SQLServe 重复行删除方法(sql server删除重复数据保留一条),希望有所帮助,仅作参考,欢迎阅读内容。

SQLServe 重复行删除方法(sql server删除重复数据保留一条)

文章相关热门搜索词:sqlserver删除重复记录,sql重复数据删除,sql语句删除重复记录,sqlserver删除重复记录保留一条,sql重复行数据删除,sql语句删除重复记录,sql重复行数据删除,sql重复行数据删除,内容如对您有帮助,希望把文章链接给更多的朋友!

SQLServer 数据修复命令DBCC一览 1.DBCCCHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。u

SQLSERVERS 数据整理方法 今天星期天,因数据库太慢,最后决定将数据库进行重新整理.(假定数据库名称为:DB_ste)1、根据现在的数据库的脚本创建一个脚本文件(FILENAME:DB_ste.sql)2

根据多条件查询临时表 想得到不同结果集的方法 当我写下如下sql语句时,我得到了输入@c参数时想得到的结果集。select*from@tbtwheret.idin(selectidfromtbwheref=@c)但如果有@a,@b,@c,而它们分别想从@tb中得到不同

标签: sql server删除重复数据保留一条

本文链接地址:https://www.jiuchutong.com/biancheng/349768.html 转载请保留说明!

上一篇:sql 查询结果合并union all用法_数据库技巧(sql将查询的结果拼接)

下一篇:SQLServer 数据修复命令DBCC一览(sqlsever修改数据)

  • 山西税务年度申报在晋税通中怎么申报
  • 认缴制的注册资本实缴时存哪里
  • 现金盘亏无法查明原因计入什么科目
  • 销售出库发票会计分录怎么做?
  • 出口报关金额要考虑银行手续费吗
  • 流动比率与速动比率之差等于现金比率
  • 对以前年度的收入调整
  • 免单计入什么科目
  • 更正申报所得税流程
  • 所得税汇算清缴补税的会计处理
  • 预收账款发货
  • 公司出售自用汽车如何开票
  • 小企业收到下列票据后,银行存款账户不变的是
  • 进项发票不勾选会有什么后果
  • 增值税普通发票需要交税吗
  • 劳务费做账要交个人所得税吗?
  • 建筑业小规模纳税人认定标准
  • 公司按照实际利润额预缴企业所得税,这个实际利润额就是会计利润吗?
  • 哪些出口业务不能做
  • 注册资金印花税什么时候开始交
  • 土地收储的含义
  • 应收账款的坏账处理方式有哪几种
  • 企业注销后注册资金取出需要交税吗
  • 开具发票的收入如何做账务处理?
  • 安全的无线连接软件
  • 总资产算不算负债
  • 坏账准备如何做账
  • 物流丢失了货品如何报警处理
  • VMware虚拟机中怎么复制粘贴
  • 在建工程完工后结转会计分录
  • 电脑文件删除如何找到
  • windows 10音响没有声音
  • echarts饼图背景图片
  • 增值税专用发票丢了怎么补救
  • 期末增值税结转账务处理
  • 工会经费免征三年的文件山东
  • 公司发放加班补贴 固定金额
  • mongodb 数据文件
  • SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
  • 什么情况下计入库存商品
  • 增值税纳税申报实训报告
  • 小微企业应具备的条件
  • 通用发票如何缴销
  • 甲供材甲方如何缴纳增值税
  • 自产货物用于抵偿债务
  • 研发费用如何进账
  • 本月开发票下月收款
  • 饭店开业多久可以正常
  • 会计报表作用 镜
  • 法人可以是办税人员吗
  • 亏损企业对外捐赠的税前扣除
  • 如果企业长期股票怎么办
  • 暂估入库需要入什么科目
  • 预付工程款该怎么记账
  • 补助资金如何做账
  • 返利开红字发票怎么做账
  • 结算本月职工工资,其中生产甲产品
  • 其他应收款科目核算哪些业务
  • 企业产值什么意思
  • 事业单位预收账款
  • 企业办增项怎样办理
  • 听妈妈讲那过去的事情讲课
  • solaris 2020
  • win10系统问题怎么修复
  • 虚拟机打开提示物理内存不足
  • solaris ip配置
  • 在系统注册表中注册
  • 不需要秘密的wifi安全吗
  • win8开机启动项怎么关闭
  • linux vmtool
  • E: Encountered a section with no Package: header错误解决方法
  • win8激活windows
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • linux文件中添加内容
  • css 定位
  • js字符串转为json
  • ansible客户端需要装python
  • javascript总结笔记
  • javascript基础书
  • 国家税务局网上江苏电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设