Nun*_*o G 98 sql sql-server indexing constraints unique
我正在使用SQL Server 2005.我想将列中的值限制为唯一,同时允许NULLS.
我当前的解决方案涉及视图上的唯一索引,如下所示:
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)
Run Code Online (Sandbox Code Playgroud)
有更好的想法吗?
Phi*_*den 101
使用SQL Server 2008,您可以创建筛选索引:http://msdn.microsoft.com/en-us/library/cc280372.aspx.(我看到西蒙补充说这是一个评论,但认为它应该得到它自己的答案,因为很容易错过评论)
另一种选择是检查唯一性的触发器,但这可能会影响性能.
one*_*hen 71
计算出的列技巧被广泛称为"nullbuster"; 我的笔记记录了Steve Kass:
CREATE TABLE dupNulls (
pk int identity(1,1) primary key,
X int NULL,
nullbuster as (case when X is null then pk else 0 end),
CONSTRAINT dupNulls_uqX UNIQUE (X,nullbuster)
)
Run Code Online (Sandbox Code Playgroud)
wil*_*hat 26
很确定你不能这样做,因为它违反了独特的目的.
然而,这个人似乎有一个体面的工作:http: //sqlservercodebook.blogspot.com/2008/04/multiple-null-values-in-unique-index-in.html
归档时间: |
|
查看次数: |
94081 次 |
最近记录: |