设计表时,有一定段为int型,怎样限定这个字段的最大值

divineka 2004-01-14 11:55:31
如题:
在表中有一字段numA,怎么限定这个字段的最大值呢?也就是说,当对该字段进行更新时,如果其值大于规定的最大数值,那么对该字段赋值为此限定的值.
...全文
84 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jones129 2004-01-15
  • 打赏
  • 举报
回复
可以通过在创建表时使用约束来完成,在企业管理器过进,并在设计表的约束表达式填入条件
如numA<10
adinna 2004-01-15
  • 打赏
  • 举报
回复
使用 CHECK 约束
下例显示对输入到 jobs 表中的 min_lvl 列和 max_lvl 列的值的限制。这两个约束都未命名:

CHECK (min_lvl >= 10)



CHECK (max_lvl <= 250)

下例显示对输入到 employee 表的 emp_id 列中的字符数据具有模式限制的命名约束。

CONSTRAINT CK_emp_id CHECK (emp_id LIKE
'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' OR
emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')

下例指定 pub_id 必须在特定的列表中或遵循给定的模式。此约束用于 publishers 表中的 pub_id 列。

CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]')

erigido 2004-01-15
  • 打赏
  • 举报
回复
约束
gmlxf 2004-01-15
  • 打赏
  • 举报
回复
如果其值大于规定的最大数值,那么对该字段赋值为此限定的值.
--------
这个还是要在前台做判断,或者是写个函数或存储过程处理,直接用check好象做不到。
gmlxf 2004-01-15
  • 打赏
  • 举报
回复
DROP TABLE T
GO
CREATE TABLE T
(
ID int IDENTITY(1,1),
numA int CHECK(numA <= 1000)
)

INSERT T VALUES(1000) -- 成功
INSERT T VALUES(1001) -- 失败

SELECT * FROM T
smalldeer 2004-01-15
  • 打赏
  • 举报
回复
CHECK (numA >= 10)
用check约束

ppp005 2004-01-15
  • 打赏
  • 举报
回复
同意!

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧