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

duplicate null value violation on UNIQUE KEY constraint in Mssql

MS SQL 服务器不会忽略空值并将其视为违反 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.

谁能帮我解决这个问题?

您可以像这样创建一个忽略空值的唯一索引

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