如何使用规则来限制数据表中字段的有限范围

问题描述

问题是:如何使用规则来限制数据表中字段的有限范围

解决方案

解决方案二:
使用rule或者CHECK约束都可以达到你要的效果!建议在数据库层实施!如果是在界面层,建议定义属性检查。
解决方案三:
能不能详细的介绍一下啊,我不太清楚唉,谢谢
解决方案四:
CHECK约束列可以有任意多个CHECK约束,并且约束条件中可以包含用AND和OR组合起来的多个逻辑表达式。列上的多个CHECK约束按创建顺序进行验证。搜索条件必须取值为布尔表达式,并且不能引用其它表。列级CHECK约束只能引用被约束的列,表级CHECK约束只能引用同一表中的列。当执行INSERT和DELETE语句时,CHECKCONSTRAINTS和规则具有相同的数据验证功能。当列上存在规则和一个或多个CHECK约束时,将验证所有限制。LZ参考--使用CHECK约束--下例显示对输入到jobs表中的min_lvl列和max_lvl列的值的限制。这两个约束都未命名:CHECK(min_lvl>=10)--与CHECK(max_lvl<=250)--下例显示对输入到employee表的emp_id列中的字符数据具有模式限制的命名约束。CONSTRAINTCK_emp_idCHECK(emp_idLIKE'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]'ORemp_idLIKE'[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')--下例指定pub_id必须在特定的列表中或遵循给定的模式。此约束用于publishers表中的pub_id列。CHECK(pub_idIN('1389','0736','0877','1622','1756')ORpub_idLIKE'99[0-9][0-9]')--F.完整的表定义--下例显示pubs数据库中所创建的三个表(jobs、employee和publishers)的完整表定义,其中包含所有的约束定义。/***************************jobstable***************************/CREATETABLEjobs(job_idsmallintIDENTITY(1,1)PRIMARYKEYCLUSTERED,job_descvarchar(50)NOTNULLDEFAULT'NewPosition-titlenotformalizedyet',min_lvltinyintNOTNULLCHECK(min_lvl>=10),max_lvltinyintNOTNULLCHECK(max_lvl<=250))/**************************employeetable**************************/CREATETABLEemployee(emp_idempidCONSTRAINTPK_emp_idPRIMARYKEYNONCLUSTEREDCONSTRAINTCK_emp_idCHECK(emp_idLIKE'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]'oremp_idLIKE'[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]'),/*EachemployeeIDconsistsofthreecharactersthatrepresenttheemployee'sinitials,followedbyafivedigitnumberrangingfrom10000through99999andthentheemployee'sgender(MorF).A(hyphen)-isacceptableforthemiddleinitial.*/fnamevarchar(20)NOTNULL,minitchar(1)NULL,lnamevarchar(30)NOTNULL,job_idsmallintNOTNULLDEFAULT1/*Entryjob_idfornewhires.*/REFERENCESjobs(job_id),job_lvltinyintDEFAULT10,/*Entryjob_lvlfornewhires.*/pub_idchar(4)NOTNULLDEFAULT('9952')REFERENCESpublishers(pub_id),/*Bydefault,theParentCompanyPublisheristhecompanytowhomeachemployeereports.*/hire_datedatetimeNOTNULLDEFAULT(getdate())/*Bydefault,thecurrentsystemdateisentered.*/)/******************publisherstable*********************/CREATETABLEpublishers(pub_idchar(4)NOTNULLCONSTRAINTUPKCL_pubindPRIMARYKEYCLUSTEREDCHECK(pub_idIN('1389','0736','0877','1622','1756')ORpub_idLIKE'99[0-9][0-9]'),pub_namevarchar(40)NULL,cityvarchar(20)NULL,statechar(2)NULL,countryvarchar(30)NULLDEFAULT('USA'))

时间: 2024-10-27 20:42:17

如何使用规则来限制数据表中字段的有限范围的相关文章

按列显示数据表中字段的值

数据|显示 在织梦论坛看到有很多会员提到如何通过循环do while调用数据表字段的问题.网上也见过这种方法很多,但感觉都挺复杂的,有的都动用Mod运算符进行取余运算了.包括我自己,在实际工作中实现效果也有点过于复杂了.试着改用一下分列显示的效果(分列显示效果见下图),感觉代码简练了好多,而且易于初学asp的用户修改. 代码如下: <%'绑定数据库Conn,略...... Set rs = Conn.Execute("select top 7 ID from news order by I

如何用sql语句修改数据表中字段,实现identity(100,1)

数据|语句 create table common_info(name varchar(10),value int)insert into common_info values('msg_count', 100)你的sql应该这么写(用存储过程):create proc p_ins_alm_msg    @msg_count     int outas    select @msg_count = value from common_info where name = 'msg_count'  

如何有条件的分步删除数据表中的记录

数据|条件 如何有条件的分步删除数据表中的记录作者:eygle出处:http://blog.eygle.com日期:February 22, 2005« 自己动手,丰衣足食 | Blog首页 有时候我们需要分配删除数据表的一些记录,分批提交以减少对于Undo的使用,本文提供一个简单的存储过程用于实现该逻辑.你可以根据你的需要进行适当调整,本例仅供参考: SQL> create table test as select * from dba_objects;Table created.SQL>

删除数据表中的重复记录

数据|重复|重复记录 删除交通违章数据表中的重复记录(同一时间[haptime].车号牌[numberplate].处罚原因[reason])一.方法原理:  1.Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的, rowid确定了每条记录是在ORACLE中的哪一个数据文件.块.行上. 2.在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大rowid的就可以了,其余全部删除. 二.实现方法:1.查询重复记录select

数据表中数据的管理

 下面介绍如何操作数据表中的数据.向数据表中插入数据     1. 向导师信息表中插入数据    (1)在图7.19所示的快捷菜单中选择[表数据编辑器]选项,出现如图7.21所示的界面.可以按照二维表格输入数据.    (2)单击按钮可以查看输入的数据对应的SQL代码.    (3)数据输入完毕后,单击按钮可以完成数据的插入.    (4)上述过程对应的SQL代码如下.    ―――――――――――――――――――――――――――――――――――――    INSERT INTO "SCOTT&

用SQLServer实现数据表中,将任意一条记录信息移动到该表中的任意位置

server|sqlserver|数据 -- 定位数据-- 设计思路:--   保存要被移动记录的原主键值和新主键值(如果有主键的话),然后比较两个主键值的大小(记录信息按升序排列),--   如果原主键值大,表明该记录被移动到前面的新位置,可将原位置的记录信息保存下来,并将从新位置的记录信息到--   原记录的前一条记录的信息顺次往下移动,把保存的原记录移动到新位置即可.--   如果原主键值小,表明该记录被移动到后面的新位置,可将原位置的记录信息保存下来,并将从新位置的记录信息到--   原

看实例学VFP:删除数据表中的记录

本例对看实例学VFP:对数据表中记录进行修改一文的实例进行了一点改进,增加了"撤消"功能.程序运行时如下图: 在组合框中选择要查找的字段,在文本框中输入查找内容后单击右侧的"查找"按钮后将查找结果显示在上方的表格中,"查找"按钮变成"撤消"按钮,同时激活"删除"按钮及用于显示数据的文本框,并将当前记录(满足查询条件的记录)的值同时显示在文本框中,:单击"删除"按钮后会删除查找出来的记录刷

看实例学VFP:向数据表中添加记录时自动生成编号

本例在"看实例学VFP:向数据表中添加记录并验证输入数据是否合法"的基础上进行了改进,实现了在添加记录时不仅能够完成对输入数据的校验,还具有自动生成编号的功能.自动生成编号的相关代码加在表单的init事件及"添加"按钮的click中,在表单第一次启动或添加完记录后都会调用此段代码,实现自动生成编号的功能.运行界面如下: 本例用到了"数据1"数据库中的"网站信息表",关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出,

看实例学VFP:对数据表中记录进行修改

本例运行时表单上用于接收数据的文本框被隐藏,"修改"按钮禁用,如下图: 在组合框中选择要查找的字段,在文本框中输入查找内容后单击右侧的"查找"按钮后将查找结果显示在上方的表格中,"查找"按钮被禁用,同时激活"修改"按钮及用于接收数据的文本框,并将当前记录(满足查询条件的记录)的值同时显示在文本框中,如下图: 单击"修改"按钮后会对输入的值做判断,如果满足非空的条件,则用表单文本框中的值修改"网站信