Đây là một lý do tại sao bạn nên có một khóa chính trên bàn. Phiên bản SQL Server nào? Đối với SQL Server 2005 trở lên:
;WITH r AS
(
SELECT col1, col2, col3, -- whatever columns make a "unique" row
rn = ROW_NUMBER() OVER (PARTITION BY col1, col2, col3 ORDER BY col1)
FROM dbo.SomeTable
)
DELETE r WHERE rn > 1;
Sau đó, bạn không phải thực hiện lại việc này vào ngày mai, ngày hôm sau và ngày hôm sau, hãy khai báo khóa chính trên bảng.