我在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