约束不允许数字在列中超过一次

时间:2016-06-16 07:03:09

标签: sql sql-server

我正在使用SQL Server 2012 SP2开发解决方案。

我想知道我是否可以执行以下操作,在表格列中添加某种限制。

我将有一个可以存储tinyint值的列(从1到5)。这个表会有很多行。

限制是你可以让5号重复多次,但其余的数字不能重复。换句话说,只有一行可以具有数字1,只有一行可以具有数字2,或者3或4.但是许多行可以具有数字5.

有没有在SQL中这样做? (就像UNIQUE约束一样)。

现在我在存储过程中执行select count()...和if语句。

1 个答案:

答案 0 :(得分:4)

您需要的是一个独特的过滤索引:

CREATE UNIQUE NONCLUSTERED INDEX IDX_UQ_Col
ON mytable(myCol)
WHERE myCol <> 5