nco*_*der 1 sql unique-index sql-server-2008
我正在尝试在SQL Server 2008中的一个数据库表上添加新的唯一索引。这是一个现有表,并且我希望唯一索引所在的列已具有一些重复的值。
我可以为该列设置唯一索引吗?如果是这样,怎么办?
首先,您需要删除列上的重复值,然后可以在其上创建唯一索引。因此,假设您的表格有2列,id而column1。要删除重复的值,您需要选择一个,它可以是随机的或有序的。所以会像这样:
WITH CTE AS
(
SELECT *, ROW_NUMBER() OVER(PARTITION BY column1 ORDER BY Id) Corr
FROM YourTable
)
DELETE FROM CTE
WHERE Corr > 1
CREATE UNIQUE INDEX I_Unique ON YourTable(Column1)
Run Code Online (Sandbox Code Playgroud)