SQL Server 2012创建具有表创建约束的唯一索引



我在Visual Studio中使用数据库项目,我希望在创建表时使用where子句创建一个唯一索引,而不必创建表并添加另一个脚本来向索引添加约束。我的限制是

CREATE UNIQUE NONCLUSTERED INDEX ix_IdNotNull
ON MyTable(MyId)
WHERE MyId IS NOT NULL;

我在找类似的东西

create table MyTable
(
MyId int unique where MyId is not null
)

但是SSMS不喜欢这样。在创建表时,是否可以将where子句分配给唯一约束?

添加NC UNIQUE索引

对于sql 2016+

create table MyTable
(
MyId int ,
INDEX [i_MyTable] UNIQUE NONCLUSTERED (MyId) WHERE [MyId] IS NOT NULL
)

早期版本

CREATE UNIQUE NONCLUSTERED INDEX [i_MyTable]
ON [MyTable] (MyId)
WHERE [MyId] IS NOT NULL

最新更新