如何编写SQL约束以使数字落在某个范围内?

时间:2008-12-19 20:20:26

标签: sql sql-server sql-server-2000

使用SQL Server,如何编写表中字段的约束,以使可接受的值范围介于0和100之间?

4 个答案:

答案 0 :(得分:19)

ALTER TABLE Table
ADD CONSTRAINT CK_Table_Column_Range CHECK (
   Column >= 0 AND Column <= 100 --Inclusive
)

答案 1 :(得分:3)

像“fieldname BETWEEN 0 AND 100”这样的检查约束应该这样做。

答案 2 :(得分:2)

尝试:

ALTER TABLE myTableName
ADD CONSTRAINT myTableName_myColumnName_valZeroToOneHundred
CHECK (myColumnName BETWEEN 0 AND 100)

此检查将包含在内 - 以下是有关来自MSDN的BETWEEN的一些信息: BETWEEN (Transact SQL)

答案 3 :(得分:1)

据我所知,正确的问题不是“如何”而是“为什么”。

这个0-100规则听起来像是一个商业规则。为什么要在服务器/数据库端实现?如果输入的值不正确,谁将收到错误消息?

如果用户收到错误消息,那么在事务到达服务器之前让代码给他消息会不会更容易?

范围修改怎么样?规则会改变吗?我想是的:规则一直在改变。范围是否可以从0-100更新到101-200?在这种情况下,已经在数据库中输入的值是什么?