- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据完整性2之数据
数据完整性2之域完整性的实现 刘天天 信息工程系 2012、09 域完整性的实现 一.CHECK约束 CHECK约束实际上是字段输入内容的验证规则,表示一个字段的输入内容必须满足CHECK约束的条件,若不满足,则数据无法正常输入。 注意:对于TimeStamp 和Identity两种类型的字段不能定义CHECK约束。 1.使用企业管理器定义CHECK约束 例:在XS数据库的XSCJ表中,学生每门课程的成绩一般在0~100的范围内,可建立CHECK 约束。(成绩=0 and 成绩=100) 课外资料: 一.CHECK约束 2.使用T-SQL语句在创建表时定义CHECK约束 语法格式: CREATE TABLE table_name (column_name datatype NOT NULL|NULL [[CONSTRAINT check_name ] CHECK (logical_expression)] [,…n]) 关键字CHECK表示定义CHECK约束,其后的logical_expression是逻辑表达式,称为CHECK约束表达式。 课外资料: 【例1】在XS数据库中创建学生信息表XSXX并对性别字段定义CHECK约束。 USE XS CREATE TABLE XSXX ( 学号 char(6), 姓名 char(8), 性别 char(2) [constraint ck_xb] CHECK (性别 IN (男,女)), 入学日期 datetime ) GO 或者:([性别] = 女 or [性别] = 男) 在一个库中不能有相同的约束名字 一.CHECK约束 一.CHECK约束 4.使用T-SQL语句删除CHECK约束 语法格式: ALTER TABLE table_name DROP CONSTRAINT check_name 【例5-3】删除XSCJ表中的成绩字段的CHECK约束。 USE XS ALTER TABLE XSCJ DROP CONSTRAINT CK_CJ GO 二.规则 规则是保证域完整性的主要手段,类似于CHECK约束。 规则是一种数据库对象,可以绑定到一列或多个列上,还可以绑定到用户自定义数据类型上。 规则定义之后可以反复使用。 先定义规则对象,再将其绑定到列或自定义数据类型。 二.规则 二.规则 2.使用T-SQL语句创建规则并绑定规则 (1)定义规则语法格式: CREATE RULE 规则名 AS 条件表达式 说明:条件表达式是定义规则的条件,可以包含算术运算符、关系运算符和谓词(如 in、like、between)之类的元素。 二.规则 创建的规则对先前已存在于数据库中的数据无效。 在单个批处理中,CREATE RULE语句不能与其他T-SQL语句组合使用 。 规则表达式的类型必须与列的数据类型兼容,不能将规则绑定到text,image, timestamp列。 对于用户定义数据类型,当在该类型的数据列中插入值,或更新该类型的数据列时,绑定到该类型的规则才会激活。 如果列同时有默认值和规则与之关联,则默认值必须满足规则的定义,与规则冲突的默认值不能插入列。 【例】创建一个规则,用以限制成绩输入的范围。 use xs go --CREATE RULE必须是批查询中的第一条语句 create rule cj_rule as @score =0 and @score = 100 go 【例】创建一个规则,用以限制输入只能是该规则中列出的值。 create rule kkxq_rule as @exam_开课学期 in (1,2,3,4,5,6 ) 课外阅读: 二.规则 (2)T-SQL语句绑定规则 sp_bindrule ‘规则名’, ’对象名’ 说明:使用系统存储过程 sp_bindrule 可以将规则绑定到列或用户自定义的数据类型上。对象名是以“表名.列名”格式指定的要绑定规则的表列,或者是用户定义数据类型的名称。 二.规则 【例5-8】解除课程编号列与规则kcbh_rule之间的绑定关系。 EXEC sp_unbindrule KCXX.课程编号 GO 不必写规则的名字。 【例5-9】解除用户定义数据类型course_num与kcbh_rule之间的绑定关系,并删除规则kcbh_rule。 USE XS IF EXISTS(SELECT name FROM sysobjects WHERE name=kcbh_rule AND type=R) BEGIN EXEC sp_unbin
文档评论(0)