zoukankan      html  css  js  c++  java
  • 删除数据库中重复的记录

    查找所有唯一的记录,删除其他记录。

    最常用的 T-SQL 语句:

    DELETE FROM [dbo].[myTable] WHERE 主键 NOT IN
        (SELECT MAX(主键) From [dbo].[myTable] GROUP BY 列1, 列2, 列3) 

    列1,列2,列3为需要去重复的列。

    SQL Server 2005 及以上版本,用 CTE: 

    WITH tmpOrderdTable 
    AS 

      SELECT  
        GroupID = ROW_NUMBER() OVER (PARTITION BY 列1, 列2, 列3 ORDER BY 主键) 
      FROM 
        [dbo].[myTable] 

    DELETE FROM tmpOrderdTable WHERE GroupID >1

    为了提高效率可以先开启单人存取模式,删除完再恢复多人存取模式: 

    # 开启单人存取模式  
    USE [master]  
    ALTER DATABASE [myDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE  
          
    # 开启多人存取模式  
    USE [master]  

    ALTER DATABASE [myDB] SET MULTI_USER WITH ROLLBACK IMMEDIATE   

    原文:http://www.loveyuki.com/blog/sql-serve-delete-duplicate-records

  • 相关阅读:
    手速太慢QAQ
    最短路总结
    放下
    素材收集
    NOI2018旅游记
    -5
    七月
    德国GG了
    本人自传
    bzoj2369
  • 原文地址:https://www.cnblogs.com/mskycn/p/2311843.html
Copyright © 2011-2022 走看看