2016-02-03 83 views
-4

如何永久刪除表中的重複行?關於SQL Server中的刪除命令

+2

我想你應該用你到目前爲止已經嘗試過的例子以及你期望的輸出的例子來澄清你的問題。請參閱[如何提出問題。](http://stackoverflow.com/help/how-to-ask) – Marusyk

+0

使用DELETE,並確保事務已提交。 – jarlh

回答

2

我喜歡的CTE和ROW_NUMBER,因爲它可以輕鬆地改變它,看看哪行被刪除(或更新),因此只要改變DELETE FROM CTE ......到SELECT * FROM CTE:

;WITH CTE AS (
    SELECT [col1], 
      [col2], 
      [col3], 
      [col4], 
      [col5], 
      [col6], 
      [col7], 
      RN = ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col1) 
    FROM dbo.table 
) 
DELETE FROM CTE 
WHERE RN > 1 

試試這個