【发布时间】:2009-11-15 05:02:33
【问题描述】:
有没有办法为数值字段设置 SQL 约束,最小值应为 1234,最大值应为 4523?
【问题讨论】:
标签: sql constraints
有没有办法为数值字段设置 SQL 约束,最小值应为 1234,最大值应为 4523?
【问题讨论】:
标签: sql constraints
the check constraint 的 SQL Server 语法:
create table numbers (
number int not null
check(number >= 1234 and number <= 4523),
...
)
create table numbers (
number int not null,
check(number >= 1234 and number <= 4523),
...
)
create table numbers (
number int not null,
constraint number_range_check
check(number >= 1234 and number <= 4523),
...
)
【讨论】:
ALTER TABLE Tbl ADD CONSTRAINT ChkTable_Field CHECK (Field BETWEEN 1234 AND 4523)。
CREATE TABLE WhatEver
(
...
NumericField INTEGER NOT NULL CHECK(NumericField BETWEEN 1234 AND 4523),
...
);
请注意,“BETWEEN AND”提供的范围包括引用的限值。
【讨论】:
如果您使用的是 SQL Server,您希望使用这样的 CHECK 约束:
CREATE TABLE foo (
someint INT NOT NULL CHECK (someint >= 1234 AND someint <= 4523)
)
【讨论】:
仅供参考
当你需要一个值范围的约束时:
ALTER TABLE package_subscription ADD CONSTRAINT check_discount_amount CHECK (discount_amount BETWEEN 0.0000 AND 1.0000);
【讨论】:
如果您通过 SQL Server Management Studio 使用 SQL Server,添加 Check Constraint 最方便的方法是右键单击树视图(对象资源管理器)中的 Constraints 文件夹,然后从弹出菜单中选择新约束。
会弹出一个检查约束窗口,其中包含一个名为 CK_tableName* 的新空约束
您可以编辑这样的建议名称,并在表达式字段中插入检查约束的代码。
然后新约束出现在对象资源管理器的约束文件夹中(在您选择文件夹并点击刷新图标后),您可以右键单击它并从弹出菜单中选择修改来编辑它。
【讨论】: