1. 程式人生 > >sql在沒有主鍵的情況下刪除表中的重複欄位

sql在沒有主鍵的情況下刪除表中的重複欄位

1.查詢不重複的資料存到臨時表裡,刪除掉原表,然後將臨時表的資料存到原表裡,上程式碼:

Select distinct * into Tmp from a
Drop table a
Select * into a from Tmp
Drop table Tmp

2.當原表和其他表有關聯時,刪除整個表可能造成資料亂掉,因此可以在表中新增一列自增的臨時列,刪除資料後再將這一列刪除,上程式碼:
alter table a add newfield int identity(1,1);
delete a
where newfield not in
(select min(newfield) from a group by Prodid,Proddes)
alter table a drop column newfield