有一个表:Table1
其中一列Code
接受可为空值我们如何确保值对于不可为空的值是唯一的,除了开头的代码'A'
最多可以重复两次?
表格1
Id | Code
----------
1 | NULL --[ok]
2 | A123 --[ok]
3 | A123 --[ok]
4 | B100 --[ok]
5 | C200 --[ok]
6 | B100 --[not ok already used]
7 | NULL --[ok]
我尝试的是创建一个索引视图,该解决方案适用于NULL
值但不适用于我提到的第二种情况(实际上跳过)
Create view v_Table_unq with schemabinding as(
select code from
dbo.Table1
where code is not null and code not like 'A%'
)
go
create unique clustered index unq_code on v_Table_unq(code)
感谢帮助