揭秘SQL Server中刪除重復(fù)數(shù)據(jù)的方法_Mssql數(shù)據(jù)庫(kù)教程
推薦:揭秘Sql語(yǔ)句優(yōu)化注意事項(xiàng)1.盡量不要對(duì)列名進(jìn)行函數(shù)處理。而是針對(duì)后面的值進(jìn)行處理 例如where col1 = -5的效率比where -col1=5的效率要高 因?yàn)楹竺娴臈l件對(duì)列值進(jìn)行了計(jì)算。這樣的條件下優(yōu)化器無(wú)法使用索引 而是要針對(duì)所有值進(jìn)行計(jì)算之后才能再比較 2.盡量使用和數(shù)劇列一樣的值進(jìn)行
數(shù)據(jù)庫(kù)的使用過程中由于程序方面的問題有時(shí)候會(huì)碰到重復(fù)數(shù)據(jù),重復(fù)數(shù)據(jù)導(dǎo)致了數(shù)據(jù)庫(kù)部分設(shè)置不能正確設(shè)置……
方法一
以下為引用的內(nèi)容: declare @max integer,@id integer |
方法二
有兩個(gè)意義上的重復(fù)記錄,一是完全重復(fù)的記錄,也即所有字段均重復(fù)的記錄,二是部分關(guān)鍵字段重復(fù)的記錄,比如Name字段重復(fù),而其他字段不一定重復(fù)或都重復(fù)可以忽略。
1、對(duì)于第一種重復(fù),比較容易解決,使用
以下為引用的內(nèi)容: select distinct * from tableName |
就可以得到無(wú)重復(fù)記錄的結(jié)果集。
如果該表需要?jiǎng)h除重復(fù)的記錄(重復(fù)記錄保留1條),可以按以下方法刪除
以下為引用的內(nèi)容: select distinct * into #Tmp from tableName |
發(fā)生這種重復(fù)的原因是表設(shè)計(jì)不周產(chǎn)生的,增加唯一索引列即可解決。
2、這類重復(fù)問題通常要求保留重復(fù)記錄中的第一條記錄,操作方法如下
假設(shè)有重復(fù)的字段為Name,Address,要求得到這兩個(gè)字段唯一的結(jié)果集
以下為引用的內(nèi)容: select identity(int,1,1) as autoID, * into #Tmp from tableName |
最后一個(gè)select即得到了Name,Address不重復(fù)的結(jié)果集(但多了一個(gè)autoID字段,實(shí)際寫時(shí)可以寫在select子句中省去此列)查詢分析器不能單步調(diào)試的的原因
具體步驟如下:
1、將服務(wù)器【身份驗(yàn)證】屬性設(shè)置成【混合模式】(window與SQL身份驗(yàn)證)
2、在【控制面板】中打開【服務(wù)】將【MS SQL Server】服務(wù)打開【屬性】,選擇【登錄】頁(yè)面,將登錄身份設(shè)置成服務(wù)器本地帳號(hào)和該帳號(hào)密碼,如administrator,密碼123;
3、重新啟動(dòng)SQL Server服務(wù),此時(shí)的服務(wù)指的是【SQL服務(wù)管理器】中的SQL Server服務(wù);假設(shè)【帳號(hào)】設(shè)置為administrator 。此時(shí)達(dá)到的效果是:服務(wù)器本地帳號(hào)administrator與客戶端上的administrator(并且該帳號(hào)的密碼要與服務(wù)器密碼相同)可以通過【查詢分析器】進(jìn)行調(diào)試;如果想讓【其他帳號(hào)】也能夠調(diào)試,那么還需要如下設(shè)置:
a、在【服務(wù)器】上運(yùn)行dcomcnfg.exe;
b、在【默認(rèn)安全機(jī)制】中【默認(rèn)訪問權(quán)限】右邊點(diǎn)擊【編輯默認(rèn)值】選擇允許調(diào)試的帳號(hào)類型,如users用戶類型,sample帳號(hào)有包含users組;
c、重新啟動(dòng)SQL Server服務(wù);
3、在客戶端上創(chuàng)建與服務(wù)帳號(hào)密碼一樣的用戶,如sample;做到這步就可以通過查詢分析器的調(diào)試功能進(jìn)行單步調(diào)試了。
注:第二步更改“啟動(dòng)服務(wù)帳戶”,在第一次登錄之前,必須更改用戶密碼。不然,event log:以當(dāng)前密碼登錄的嘗試因下列錯(cuò)誤而宣告失�。� 在第一次登錄之前,必須更改用戶密碼。
分享:解析J2EE中SQL語(yǔ)句自動(dòng)構(gòu)造方法INSERT、DELETE、UPDATE 三種SQL語(yǔ)句是數(shù)據(jù)庫(kù)技術(shù)的三大基本語(yǔ)句. 在通常的web開發(fā)中對(duì)它的處理可以說是無(wú)處不在. 如果簡(jiǎn)單的都用手工來構(gòu)造這些SQL語(yǔ)句的話, 一方面給我們的開發(fā)帶來很大的工作量, 另一方面系統(tǒng)靈活性受到很大的限制. 那么能不能基于某種規(guī)
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- Sql Server 2008完全卸載方法(其他版本類似)
- sql2008 還原數(shù)據(jù)庫(kù)解決方案
- SQL Server 索引基礎(chǔ)知識(shí)(4)----主鍵與聚集索引
- 配置SQL SERVER合并復(fù)制之(三)配置Distributor
- Sql學(xué)習(xí)第一天——SQL 將變量定義為Table類型(虛擬表)
- SQL Server中, DateTime (日期)型操作的 SQL語(yǔ)法
- 詳解SQL Server中數(shù)據(jù)庫(kù)快照的工作原理
- SQLServer 2008中的代碼安全(四) 主密鑰
- 關(guān)于sql server批量插入和更新的兩種解決方案
- 遠(yuǎn)程連接SQL Server 2000服務(wù)器的解決方案
猜你也喜歡看這些
- 基于ubuntu中使用mysql實(shí)現(xiàn)opensips用戶認(rèn)證的解決方法
- 10大關(guān)系數(shù)據(jù)庫(kù)SQL注入工具一覽
- 解析mysql數(shù)據(jù)庫(kù)還原錯(cuò)誤:(mysql Error Code: 1005 errno 121)
- 服務(wù)器不支持 MySql 數(shù)據(jù)庫(kù)的解決方法
- sql語(yǔ)句:SQLServer字段排序(按筆畫,拼音,拼音首字母)
- MySQL和Access的區(qū)別
- SQLServer導(dǎo)出數(shù)據(jù)到MySQL實(shí)例介紹
- 解決bash: mysql: command not found 的方法
- MySQL查詢優(yōu)化:用子查詢代替非主鍵連接查詢實(shí)例介紹
- mysql 數(shù)據(jù)庫(kù) (基礎(chǔ)) 筆記
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫(kù)教程-揭秘SQL Server中刪除重復(fù)數(shù)據(jù)的方法
。