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