Sql server 2005 SQL Server 2005具有空值的唯一密钥
我在SQLServer2005中有一个带有外键的表,我希望该外键为唯一值或null。我已经将其设置为唯一键,但它不允许在同一个表中有多个null。有可能做到我想要的吗?在SQL Server 2008中,您可以在不为null的值上创建一个值-不幸的是,这是2008版本中的一个新功能,因此在2005年,恐怕您无法执行类似的操作。这是对SQL Server独特约束/索引的长期抱怨。最好的解决方案是使用schemabinding创建一个视图,然后在该列上放置一个唯一的索引:Sql server 2005 SQL Server 2005具有空值的唯一密钥,sql-server-2005,unique-key,Sql Server 2005,Unique Key,我在SQLServer2005中有一个带有外键的表,我希望该外键为唯一值或null。我已经将其设置为唯一键,但它不允许在同一个表中有多个null。有可能做到我想要的吗?在SQL Server 2008中,您可以在不为null的值上创建一个值-不幸的是,这是2008版本中的一个新功能,因此在2005年,恐怕您无法执行类似的操作。这是对SQL Server独特约束/索引的长期抱怨。最好的解决方案是使用schemabinding创建一个视图,然后在该列上放置一个唯一的索引: Create View d
Create View dbo.MyUniqueColView
With SchemaBinding
As
Select MyColToBeUnique
From MyTable
Where MyColToBeUnique Is Not Null
GO
Create Unique Clustered Index IX_MyTable_MyColToBeUnique On MyUniqueColView ( MyColToBeUnique )
在SQL Server 2005中,您无法使用表级约束强制执行此操作,但您可以创建一个定义为“从t中选择Col,其中Col不为NULL”的视图,然后在该视图上创建一个唯一的聚集索引。始终是我的烦恼。我更喜欢标准的“其他”解释 看。它包括三种不同的方法