3 T) G8 X% M+ ^/ c1 l" o7 n! K; f( lselect distinct * from tableName Q" D& w% H2 \( b. ?8 ]$ u! O2 [( n' W W0 G% N1 S; T) ~6 n
8 `0 c R- g6 t9 o1 {+ u& T4 X
就可以得到无重复记录的结果集。 ; A: E) ~* N1 A! w: X# i( t6 ]4 F, N) u3 A( g/ F& Z
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除0 O% n9 {. i( `3 u
* m5 }7 H5 z6 @$ t" S3 T/ dselect distinct * into #Tmp from tableName 9 R% ^/ Q6 f. |4 pdrop table tableName% m9 L8 A' _7 V4 j& Y
select * into tableName from #Tmp$ b- z1 s& p5 \4 X7 G, J
drop table #Tmp 0 K+ {* W0 t# ?9 a4 b# r4 C P# U( v& R1 C( n
" `: V3 E4 `" G4 R2 Y: L6 W- H 发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。' R- w: W8 M& a0 [
) Q7 Z/ n8 c8 M9 R. N) s
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 1 l' J. N2 ~" v% _' f4 Z; s `6 w" U! `9 y( R" E 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 ' O$ @, O/ V) f/ i. S9 ^ b Y- k: p$ J" y. E7 G9 R
select identity(int,1,1) as autoID, * into #Tmp from tableName ( @+ ?2 u& c z: V' |select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID , Z+ ^) E* Y: |7 hselect * from #Tmp where autoID in(select autoID from #tmp2) : O/ A7 D W8 X9 ]
6 F* ]+ s V' j# G3 @ 具体步骤如下: 0 c! ~# Y; g! g6 V: ?& A1 Z+ u
% @/ @* }7 d' V- x
1、将服务器【身份验证】属性设置成【混合模式】(window与SQL身份验证) ' I o( u9 f/ x9 f5 N# B: C9 W7 g& [1 O! b2 ?( U
2、在【控制面板】中打开【服务】将【MS SQL Server】服务打开【属性】,选择【登录】页面,将登录身份设置成服务器本地帐号和该帐号密码,如administrator,密码123; " G) m% A0 k0 l) t8 P
, x$ {# C% D: k5 x" w6 z 3、重新启动SQL Server服务,此时的服务指的是【SQL服务管理器】中的SQL Server服务;假设【帐号】设置为administrator 。此时达到的效果是:服务器本地帐号administrator与客户端上的administrator(并且该帐号的密码要与服务器密码相同)可以通过【查询分析器】进行调试;如果想让【其他帐号】也能够调试,那么还需要如下设置: : I8 t0 h* A1 L# F' `7 w a、在【服务器】上运行dcomcnfg.exe; y# S- ?8 a* d+ u& q M" K: q9 N8 J4 k+ ]7 l; @
b、在【默认安全机制】中【默认访问权限】右边点击【编辑默认值】选择允许调试的帐号类型,如users用户类型,sample帐号有包含users组; 0 x/ w' w* G% U$ w 1 P; r" m5 N, f2 | c、重新启动SQL Server服务; U# N7 x3 j2 N! C1 z& C) H, r
7 V F/ j2 b1 P7 @3 \7 U6 w 3、在客户端上创建与服务帐号密码一样的用户,如sample;做到这步就可以通过查询分析器的调试功能进行单步调试了。 - f2 F+ O3 _5 `: v. j. l
注:第二步更改“启动服务帐户”,在第一次登录之前,必须更改用户密码。不然,event log:以当前密码登录的尝试因下列错误而宣告失败: 在第一次登录之前,必须更改用户密码。