强制列升序的SQL字段约束

时间:2016-05-30 01:25:56

标签: sql sql-server sql-server-2012 constraints

我正在使用一个带有数字字段的用户输入的小表。用户输入的数字必须比当前最高数字大几个点。如果当前最高得分<1,我还可以检查得分必须是例如1。如果当前最高10&lt; =得分&lt; 10&lt; = 100?

例如:

user score
1     1
1     2
1     4
1     5
1     7

现在,我想要一个约束来检查插入时插入的分数是否大于当前最高分数x的数量。

这样的约束是否可能?

1 个答案:

答案 0 :(得分:0)

这种约束很难实现。如果你关心表现,你能简单地输入差异吗?

1     1
1     1
1     2
1     1
1     2

如果您以这种方式执行数据,则可以使用check (score > 0)然后使用sum(score) over (order by ??),其中??指定行的顺序。

否则,您需要使用触发器或用户定义的函数来实现约束。