I want to set a Unique Constraint that allows nulls using SQL Server 2014 Express
本问题已经有最佳答案,请猛点这里访问。
我想设置一个唯一的约束,允许使用SQL Server 2014 Express的空值。 我知道之前有人问过这个问题但5年前在这篇文章中被问过。
如何创建一个也允许空值的唯一约束?
我只是开始学习SQL所以我想看看自5年前以来是否有其他选项可用。
我正在使用Unique Filtered Index,但我希望尽可能避免使用此索引。
谢谢。
您链接的问题的答案仍然适用并且是正确的,到目前为止似乎没有其他方法。
自2007年以来,Microsoft Connect上就有一张票据。正如那里建议的那样,您最好的选择是使用过滤索引或计算列,例如:
1 2 3 4 5 6 7 8 9 10 11 | CREATE TABLE [Orders] ( [OrderId] INT IDENTITY(1,1) NOT NULL, [TrackingId] varchar(11) NULL, ... [TrackingIdUnique] AS ( CASE WHEN [TrackingId] IS NULL THEN '#' + cast([OrderId] as varchar(12)) ELSE [TrackingId_Unique] END ), CONSTRAINT [UQ_TrackingIdUnique] UNIQUE ([TrackingIdUnique]) ) |