使用SQL Server,如何编写表中字段的约束,以使可接受的值范围介于0和100之间?
答案 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?在这种情况下,已经在数据库中输入的值是什么?