我使用的是 SQL Server 2005。我希望将列中的值限制为唯一,同时允许 NULL。
我当前的解决方案涉及 View 上的唯一索引,如下所示:
CREATE VIEW vw_unq WITH SCHEMABINDING AS
SELECT Column1
FROM MyTable
WHERE Column1 IS NOT NULL
CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1)
还有更好的想法吗?
最佳答案
使用 SQL Server 2008,您可以 create a filtered index .
CREATE UNIQUE INDEX AK_MyTable_Column1 ON MyTable (Column1) WHERE Column1 IS NOT NULL
另一个选项是检查唯一性的触发器,但这可能会影响性能。
关于sql - 如何在 NULL 列上创建唯一索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/191421/