在SQL Server中快速删除重复记录 2006-07-17 21:53:15
分类: SQL Server
开发人员的噩梦——删除重复记录 CREATE TABLE Products ( ProductID int, ProductName nvarchar (40), Unit char(2), UnitPrice money ) 假设产品Chang和Tofu的记录在产品信息表中存在重复。现在要删除这些重复的记录,只保留其中的一条。步骤如下: CREATE TABLE Products_temp ( ProductID int, ProductName nvarchar (40), Unit char(2), UnitPrice money ) 第二板斧——为该表加上索引,并使其忽略重复的值 insert into Products_temp Select * from Products 此时SQL Server会返回如下提示: 服务器: 消息 3604,级别 16,状态 1,行 1 已忽略重复的键。 它表明在产品信息临时表Products_temp中不会有重复的行出现。 第四板斧——将新的数据导入原表 delete Products 这样就完成了对表中重复记录的删除。无论表有多大,它的执行速度都是相当快的,而且因为几乎不用写语句,所以它也是很安全的。 小提示:上述方法中删除重复记录取决于创建唯一索引时选择的字段,在实际的操作过程中读者务必首先确认创建的唯一索引字段是否正确,以免将有用的数据删除。 |
[@more@]