在Mssql中对UNIQUE KEY约束重复空值违规

时间:2015-08-11 16:33:17

标签: sql-server database null unique-constraint

MS SQL Server不会忽略空值并将其视为对UNIQUE KEY约束的违反,但我所知道的是,UNIQUE KEY与接受空值的主键不同。

Violation of UNIQUE KEY constraint 'AK_UserName'. Cannot insert duplicate key in object 'dbo.users'. The duplicate key value is (<NULL>).
The statement has been terminated.

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:16)

您可以创建一个忽略空值的唯一索引,例如

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;