SQLSERVER实用经验技巧集[二]

SQLSERVER实用经验技巧集[二],第1张

SQLSERVER实用经验技巧集[二],第2张

删除数据库中重复数据的几种方法
在使用数据库的过程中,有时会因为程序问题遇到重复数据,导致一些数据库设置不正确...

方法一


declare @ maxinteger,@ id integer
declare cur _ rows cursor local for select main field,Count(*)from table name group by Count(*)> 1的main field
open cur _ rows
fetch cur _ rows into @ id,@ max
while @ @ fetch _ status = 0
begin
select @ max = @ max-1
setrowcount @ max
delete from table name where main field = .


方法2

重复记录有两种,一种是完全重复记录,即所有字段都重复,另一种是一些关键字段,比如姓名字段,而其他字段不一定重复或者可以忽略。

1.对于第一种重复,它更容易解决和使用


select distinct * from tableName


您可以获得没有重复记录的结果集。

如果该表需要删除重复记录(保留一条重复记录),可以按如下方式删除


select distinct * into # Tmp from tableName
drop table tableName
select * into tableName from # Tmp
drop table # Tmp

这种重复是由糟糕的表设计造成的,可以通过添加索引列来解决。

2.这种重复问题通常要求保留重复记录中的第一条记录。操作方法如下
假设重复字段为name Name,Address,则需要这两个字段的结果集。


select identity(int,1,1) as autoID,* into # Tmp from tableName
select min(autoID)as autoID into # Tmp 2 from # Tmp group by Name,autoID
select * from # Tmp where autoID in(select autoID from # Tmp 2)

最后一个select导致结果集中没有重复的名称和地址(但是添加了一个autoID字段,在编写时可以在select子句中省略它)

更改数据库中表的用户的两种方法
您可能经常会遇到将数据库备份还原到另一台计算机上,结果无法打开所有表的情况。原因是在构建表时使用了当时的数据库用户...

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLSERVER实用经验技巧集[二]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情