【发布时间】:2010-09-27 18:45:59
【问题描述】:
使用 SQL Server,如何编写对表中字段的约束脚本,使值的可接受范围在 0 到 100 之间?
【问题讨论】:
标签: sql sql-server sql-server-2000
使用 SQL Server,如何编写对表中字段的约束脚本,使值的可接受范围在 0 到 100 之间?
【问题讨论】:
标签: sql sql-server sql-server-2000
在我看来,正确的问题不是“如何”而是“为什么”。
在我看来,这条 0-100 规则听起来像是一条商业规则。为什么要在服务器/数据库端实现?如果输入了不正确的值,谁会收到错误消息?
如果用户收到错误消息,在事务到达服务器之前让代码给他消息不是更容易吗?
范围修改呢?规则可以改变吗?我想是的:规则总是会改变。范围可以从0-100更新到101-200吗?在这种情况下,数据库中已经输入的值呢?
【讨论】:
试试:
ALTER TABLE myTableName
ADD CONSTRAINT myTableName_myColumnName_valZeroToOneHundred
CHECK (myColumnName BETWEEN 0 AND 100)
此检查将包含在内 - 以下是 MSDN 中有关 BETWEEN 的一些信息: BETWEEN (Transact SQL)
【讨论】:
应该使用“fieldname BETWEEN 0 AND 100”之类的检查约束。
【讨论】:
ALTER TABLE Table
ADD CONSTRAINT CK_Table_Column_Range CHECK (
Column >= 0 AND Column <= 100 --Inclusive
)
【讨论】: