国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

揭秘SQL Server中刪除重復數據的方法

2024-08-31 00:46:44
字體:
來源:轉載
供稿:網友

數據庫的使用過程中由于程序方面的問題有時候會碰到重復數據,重復數據導致了數據庫部分設置不能正確設置……

方法一

以下為引用的內容:

declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0

方法二

有兩個意義上的重復記錄,一是完全重復的記錄,也即所有字段均重復的記錄,二是部分關鍵字段重復的記錄,比如Name字段重復,而其他字段不一定重復或都重復可以忽略。

1、對于第一種重復,比較容易解決,使用

以下為引用的內容:

select distinct * from tableName

就可以得到無重復記錄的結果集。

如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除

以下為引用的內容:

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

發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。

2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下

假設有重復的字段為Name,Address,要求得到這兩個字段唯一的結果集

以下為引用的內容:

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

最后一個select即得到了Name,Address不重復的結果集(但多了一個autoID字段,實際寫時可以寫在select子句中省去此列)查詢分析器不能單步調試的的原因

  具體步驟如下:

  1、將服務器【身份驗證】屬性設置成【混合模式】(window與SQL身份驗證)

  2、在【控制面板】中打開【服務】將【MS SQL Server】服務打開【屬性】,選擇【登錄】頁面,將登錄身份設置成服務器本地帳號和該帳號密碼,如administrator,密碼123;

  3、重新啟動SQL Server服務,此時的服務指的是【SQL服務管理器】中的SQL Server服務;假設【帳號】設置為administrator 。此時達到的效果是:服務器本地帳號administrator與客戶端上的administrator(并且該帳號的密碼要與服務器密碼相同)可以通過【查詢分析器】進行調試;如果想讓【其他帳號】也能夠調試,那么還需要如下設置:
  a、在【服務器】上運行dcomcnfg.exe;

  b、在【默認安全機制】中【默認訪問權限】右邊點擊【編輯默認值】選擇允許調試的帳號類型,如users用戶類型,sample帳號有包含users組;

  c、重新啟動SQL Server服務;

  3、在客戶端上創建與服務帳號密碼一樣的用戶,如sample;做到這步就可以通過查詢分析器的調試功能進行單步調試了。
  注:第二步更改“啟動服務帳戶”,在第一次登錄之前,必須更改用戶密碼。不然,event log:以當前密碼登錄的嘗試因下列錯誤而宣告失敗: 在第一次登錄之前,必須更改用戶密碼。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 呼和浩特市| 绩溪县| 观塘区| 牟定县| 馆陶县| 株洲县| 德安县| 阳朔县| 独山县| 彰化县| 长兴县| 高密市| 克山县| 隆回县| 加查县| 巫溪县| 石棉县| 县级市| 东城区| 阿瓦提县| 广宗县| 新余市| 成安县| 神农架林区| 治县。| 曲水县| 张家口市| 高青县| 楚雄市| 喜德县| 石棉县| 旺苍县| 中江县| 临清市| 桓台县| 哈巴河县| 郯城县| 乌拉特前旗| 崇左市| 建湖县| 和静县|