我正在使用SQL Server 2012 SP2开发解决方案。
我想知道我是否可以执行以下操作,在表格列中添加某种限制。
我将有一个可以存储tinyint
值的列(从1到5)。这个表会有很多行。
限制是你可以让5号重复多次,但其余的数字不能重复。换句话说,只有一行可以具有数字1,只有一行可以具有数字2,或者3或4.但是许多行可以具有数字5.
有没有在SQL中这样做? (就像UNIQUE约束一样)。
现在我在存储过程中执行select count()...和if语句。
答案 0 :(得分:4)
您需要的是一个独特的过滤索引:
CREATE UNIQUE NONCLUSTERED INDEX IDX_UQ_Col
ON mytable(myCol)
WHERE myCol <> 5