欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第06章 存储过程、触发器和数据性.ppt

    • 资源ID:1018300       资源大小:211KB        全文页数:50页
    • 资源格式: PPT        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第06章 存储过程、触发器和数据性.ppt

    1、 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系北京市高等教育精品教材立项项目北京市高等教育精品教材立项项目数据库系统及应用1合肥学院电子系合肥学院电子系第六章 存储过程、触发器和数据完整性 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系学习内容 存储过程存储过程 触发器触发器 数据完整性数据完整性3合肥学院电子系合肥学院电子系存储过程 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系定义客户客户/服务器数据库与传统的数据库结构的一个很重要服务器数据库与传统的数据库结构的一个很重要的区别是,在传统的数据库中

    2、只存放数据,所有的应用程序的区别是,在传统的数据库中只存放数据,所有的应用程序都在用户端,都与用户实际运行的应用程序捆绑在一起;而都在用户端,都与用户实际运行的应用程序捆绑在一起;而在客户在客户/服务器结构的数据库中,服务器结构的数据库中,在数据库中还可以存放程在数据库中还可以存放程序序,即,即存储过程存储过程。存储过程存储过程是事先编好的、存储在数据库中的程序,这些是事先编好的、存储在数据库中的程序,这些程序用来完成对数据库的指定操作。程序用来完成对数据库的指定操作。5 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系概念存储过程存储过程是一种数据库对象,独立存储

    3、在数据是一种数据库对象,独立存储在数据库内。存储过程可以接受库内。存储过程可以接受输入参数输入参数、输出参数输出参数,返返回单个或多个结果集以及返回值回单个或多个结果集以及返回值,由应用程序通过,由应用程序通过调用执行。调用执行。存储过程是存储过程是独立存在于表之外的数据对象独立存在于表之外的数据对象。可。可以由客户调用,也可以从另一个过程或触发器调用,以由客户调用,也可以从另一个过程或触发器调用,参数可以被传递和返回,出错代码也可以被检验。参数可以被传递和返回,出错代码也可以被检验。6 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系优点预编译预编译:存储过程预先

    4、编译好放在数据库内,减少编译语句存储过程预先编译好放在数据库内,减少编译语句所花的时间。所花的时间。缓存缓存:编译好的存储过程会进入缓存,所以对于经常执行的编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的速度会有明存储过程,除了第一次执行外,其他次执行的速度会有明显提高。显提高。减少网络传输减少网络传输:特别对于处理一些数据的存储过程,不必像特别对于处理一些数据的存储过程,不必像直接用直接用T-SQLT-SQL语句实现那样多次传送数据到客户端。语句实现那样多次传送数据到客户端。更好的利用服务器内存更好的利用服务器内存:特别对于处理中间数据量不大的情特别对于

    5、处理中间数据量不大的情况,存储过程中可以利用存放在内存的表变量。况,存储过程中可以利用存放在内存的表变量。7 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系存储过程的类型1.1.系统存储过程系统存储过程2.2.本地存储过程本地存储过程3.3.临时存储过程临时存储过程8 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系系统存储过程SQL ServerSQL Server本身提供了一些存储过程,用于管本身提供了一些存储过程,用于管理理SQL ServerSQL Server和显示有关数据库和用户的信息,我和显示有关数据库和用户的信息,我们称

    6、之为们称之为系统存储过程系统存储过程。系统存储过程主要存储在系统存储过程主要存储在mastermaster数据库中并以数据库中并以sp_sp_为前缀,并且系统存储过程主要是从系统表中获为前缀,并且系统存储过程主要是从系统表中获取信息,从而为数据库系统管理员管理取信息,从而为数据库系统管理员管理SQL ServerSQL Server提供支持。提供支持。9 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系本地存储过程本地存储过程本地存储过程也就是用户自行创建并存储在用也就是用户自行创建并存储在用户数据库中的存储过程,一般所说的存储过程指的户数据库中的存储过程,一般所说

    7、的存储过程指的就是本地存储过程。就是本地存储过程。用户创建的存储过程是由用户创建并能完成某用户创建的存储过程是由用户创建并能完成某一特定功能一特定功能(如查询用户所需的数据信息如查询用户所需的数据信息)的存储过的存储过程。程。10 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系临时存储过程(1)(1)本地临时存储过程本地临时存储过程:如果在创建存储过程时,其:如果在创建存储过程时,其名称以名称以“#”#”号开头,则该存储过程将成为一个存放号开头,则该存储过程将成为一个存放在在tempdbtempdb数据库中的本地临时存储过程。数据库中的本地临时存储过程。(2)(2

    8、)全局临时存储过程全局临时存储过程:只要所创建的存储过程名称:只要所创建的存储过程名称是以两个是以两个“#”#”号开头,则该存储过程将成为一个存号开头,则该存储过程将成为一个存储在储在tempdbtempdb数据库中的全局临时存储过程。数据库中的全局临时存储过程。11 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系创建存储过程CREATECREATE PROCPROCedureedure procedure_nameprocedure_name ;number ;number parameter parameter data_typedata_type =defa

    9、ult,=default,AS AS sql_statementsql_statementprocedure_nameprocedure_name:给出存储过程名;:给出存储过程名;numbernumber:对同名的存储过程指定一个序号;:对同名的存储过程指定一个序号;parameterparameter:给出参数名;:给出参数名;data_typedata_type:指出参数的数据类型;:指出参数的数据类型;=default=default:给出参数的默认值;:给出参数的默认值;sql_statementsql_statement:存储过程所要执行的:存储过程所要执行的SQLSQL语句,它可

    10、以是语句,它可以是一组一组SQLSQL语句,可以包含流程控制语句等。语句,可以包含流程控制语句等。12 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系实例CREATE CREATE PROCedurePROCedure sp_getempsp_getemp;1;1AS AS SELECT*FROM SELECT*FROM 职工职工13 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系实例CREATE CREATE PROCedurePROCedure sp_getemp;2 sp_getemp;2(salary(salary intin

    11、t)AS AS SELECT*FROM SELECT*FROM 职工职工 WHERE WHERE 工资工资 salary salary14 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系注意 存储过程一般用来完成数据查询和数据处理操作,所以存储过程一般用来完成数据查询和数据处理操作,所以在存储过程中不可以使用创建数据库对象的语句,即在存储在存储过程中不可以使用创建数据库对象的语句,即在存储过程中一般不能含有以下语句:过程中一般不能含有以下语句:CREATE TABLECREATE TABLE CREATE VIEW CREATE VIEW CREATE DEFAU

    12、LT CREATE DEFAULT CREATE RULE CREATE RULE CREATE TRIGGER CREATE TRIGGER CREATE PROCEDURE CREATE PROCEDURE15 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系执行存储过程 EXECuteEXECute=|16 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系执行带参数的sp_getemp;2存储过程execute sp_getemp;2 1240execute sp_getemp;2 124017 数据库技术数据库技术合肥学院电子信息

    13、与电气工程系合肥学院电子信息与电气工程系存储过程的返回值和状态信息无论什么时候执行存储过程,总要返回一个结无论什么时候执行存储过程,总要返回一个结果码,用以指示存储过程的执行状态。如果存储过果码,用以指示存储过程的执行状态。如果存储过程执行成功,返回的结果码是程执行成功,返回的结果码是0 0;如果存储过程执行;如果存储过程执行失败,返回的结果码一般是失败,返回的结果码一般是一个负数一个负数,它和失败的,它和失败的类型有关。我们在创建存储过程时,也可以定义自类型有关。我们在创建存储过程时,也可以定义自己的状态码和错误信息。己的状态码和错误信息。18 数据库技术数据库技术合肥学院电子信息与电气工程

    14、系合肥学院电子信息与电气工程系例:带参数和返回状态值的存储过程。CREATE CREATE PROCedurePROCedure sp_getemp;3 sp_getemp;3(salary(salary intint=NULL)=NULL)AS AS IF salary IS NULLIF salary IS NULLBEGINBEGIN PRINT PRINT 必须提供一个数值作参数!必须提供一个数值作参数!RETURN 13 RETURN 13ENDENDIF NOT EXISTS(SELECT*FROM IF NOT EXISTS(SELECT*FROM 职工职工 WHERE WHER

    15、E 工资工资 salary)salary)BEGINBEGIN PRINT PRINT 没有满足条件的记录!没有满足条件的记录!RETURN-103 RETURN-103ENDENDSELECT*FROM SELECT*FROM 职工职工 WHERE WHERE 工资工资 salary salaryRETURN 0RETURN 019 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系例:执行以上存储过程DECLARE status DECLARE status intintEXECUTE status=sp_getemp;3 1200EXECUTE status=s

    16、p_getemp;3 1200print statusprint status20 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系存储过程的修改和删除修改存储过程的语句是(一般格式):修改存储过程的语句是(一般格式):ALTER ALTER PROCPROCedureedure procedure_nameprocedure_name ;number ;number parameter parameter data_typedata_type =default,=default,AS AS sql_statementsql_statement 删除存储过程的语句是

    17、:删除存储过程的语句是:DROP DROP PROCPROCedureedure procedure_nameprocedure_name注注意意:删删除除存存储储过过程程的的语语句句中中不不能能指指定定序序号号。也也就就是是说说,该语句将同时删除同名的所有存储过程。该语句将同时删除同名的所有存储过程。21合肥学院电子系合肥学院电子系触发器 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系简介触发器触发器可以看作是一类可以看作是一类特殊的存储过程特殊的存储过程,它在满足某个特,它在满足某个特定条件时自动触发执行。定条件时自动触发执行。触发器是为表上的更新、插入、删除

    18、操作定义的,也就是触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行。说当表上发生更新、插入或删除操作时触发器将执行。23 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系触发器的用途1.1.触发器可以通过级联的方式对相关的表进行修改。比如,触发器可以通过级联的方式对相关的表进行修改。比如,对父表的修改,可以引起对子孙表的一系列修改,从而对父表的修改,可以引起对子孙表的一系列修改,从而保证数据的一致性和完整性。保证数据的一致性和完整性。2.2.触发器可以禁止或撤消违反参照完整性的修改。触发器可以禁止或撤消违反参照完整性的

    19、修改。3.3.触发器可以强制比用触发器可以强制比用CHECKCHECK约束定义更加复杂的限制。约束定义更加复杂的限制。24 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系特点触发器是触发器是依附于表的数据库对象依附于表的数据库对象。一个触发器和三部分。一个触发器和三部分内容有关:内容有关:定义触发器的表定义触发器的表激活触发器的数据操作语句激活触发器的数据操作语句触发器要采取的动作触发器要采取的动作25 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系建立触发器CREATE TRIGGER CREATE TRIGGER trigger_

    20、nametrigger_name ON table ON tableFOR INSERT|UPDATE|DELETE FOR INSERT|UPDATE|DELETE AS AS IF IF UPDATE(columnUPDATE(column)AND|OR)AND|OR UPDATE(columnUPDATE(column)sql_statementsql_statementtrigger_nametrigger_name:给出了触发器的名称;:给出了触发器的名称;tabletable:说明了定义触发器的表或视图;:说明了定义触发器的表或视图;FOR INSERT|UPDATE|DELETE

    21、 FOR INSERT|UPDATE|DELETE:说明了激活触发器的数据操作:说明了激活触发器的数据操作语句;语句;IF IF UPDATE(columnUPDATE(column):对应于:对应于UPDATEUPDATE类触发器,说明如果更新某(些)类触发器,说明如果更新某(些)列则做如何处理;列则做如何处理;sql_statementsql_statement:触发器所要执行的:触发器所要执行的SQLSQL语句,它可以是一组语句,它可以是一组SQLSQL语句,语句,可以包含流程控制语句等。可以包含流程控制语句等。26 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气

    22、工程系例:建立一个简单的触发器CREATE TRIGGER CREATE TRIGGER wh_triggerwh_triggerON ON 仓库仓库FOR INSERT FOR INSERT AS PRINT AS PRINT 插入了一个仓库元组插入了一个仓库元组 27 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系插入视图和删除视图为触发器运行而自动派生的两个视图:为触发器运行而自动派生的两个视图:insertedinserted存放刚插入的新记录存放刚插入的新记录deleteddeleted存放刚删除的旧记录存放刚删除的旧记录28 数据库技术数据库技术合肥学

    23、院电子信息与电气工程系合肥学院电子信息与电气工程系删除类触发器删除类触发器就是当表上发生删除操作时所触发删除类触发器就是当表上发生删除操作时所触发执行的程序。执行的程序。例:定义一个触发器,使得当删除仓库记录时,例:定义一个触发器,使得当删除仓库记录时,同时将所属所有职工记录的仓库号字段值置为空同时将所属所有职工记录的仓库号字段值置为空值值NULLNULL。29 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系删除类触发器CREATE TRIGGER CREATE TRIGGER w_del_triggerw_del_triggerON ON 仓库仓库 FOR DE

    24、LETEFOR DELETEASASUPDATE UPDATE 职工职工SET SET 仓库号仓库号=NULL=NULLWHERE WHERE 仓库号仓库号 =(SELECT=(SELECT 仓库号仓库号 FROM deleted)FROM deleted)30 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系插入类触发器插入类触发器就是当表上发生插入操作时所触发插入类触发器就是当表上发生插入操作时所触发执行的程序。执行的程序。例:对职工表的插入操作定义一个触发器,使得例:对职工表的插入操作定义一个触发器,使得当插入职工记录时,检查相应的仓库元组是否存当插入职工记录

    25、时,检查相应的仓库元组是否存在,如果不存在则撤消所做的插入操作。在,如果不存在则撤消所做的插入操作。31 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系插入类触发器CREATE TRIGGER CREATE TRIGGER e_ins_triggere_ins_triggerON ON 职工职工 FOR INSERTFOR INSERTASASIF(SELECT COUNT(*)FROM IF(SELECT COUNT(*)FROM 仓库仓库 w,inserted i w,inserted i WHERE w.WHERE w.仓库号仓库号 =i.=i.仓库号仓库号

    26、)=0)=0BEGINBEGIN RAISERROR(RAISERROR(非法仓库号!非法仓库号!,1,1),1,1)ROLLBACK TRANSACTION ROLLBACK TRANSACTIONENDEND32 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系更新类触发器更新类触发器就是当表上发生更新操作时所触发执行的程更新类触发器就是当表上发生更新操作时所触发执行的程序。序。例:对职工表的更新操作定义一个触发器,使得当职工变例:对职工表的更新操作定义一个触发器,使得当职工变换所属仓库时,检查相应的仓库元组是否存在,如果不存换所属仓库时,检查相应的仓库元组是否

    27、存在,如果不存在则撤消所做的更新操作,如果新的仓库号是在则撤消所做的更新操作,如果新的仓库号是WH2WH2则将工则将工资提高资提高10%10%。33 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系CREATE TRIGGER CREATE TRIGGER e_upd_triggere_upd_triggerON ON 职工职工 FOR UPDATEFOR UPDATEASASDECLARE DECLARE wh_nowh_no CHAR(4)CHAR(4)IF UPDATE(IF UPDATE(仓库号仓库号)BEGINBEGIN IF(SELECT COUNT(*

    28、)FROM IF(SELECT COUNT(*)FROM 仓库仓库 w,inserted iw,inserted i WHERE w.WHERE w.仓库号仓库号 =i.=i.仓库号仓库号)=0)=0 BEGIN BEGIN RAISERROR(RAISERROR(非法仓库号!非法仓库号!,16,1),16,1)ROLLBACK TRANSACTION ROLLBACK TRANSACTION END END ELSE ELSE BEGIN BEGIN SELECT SELECT wh_nowh_no=仓库号仓库号 FROM insertedFROM inserted IF IF wh_now

    29、h_no=WH2=WH2 UPDATE UPDATE 职工职工 SET SET 工资工资 =工资工资*1.101.10 WHERE WHERE 职工号职工号 =(SELECT=(SELECT 职工号职工号 FROM inserted)FROM inserted)END ENDENDEND34合肥学院电子系合肥学院电子系数据完整性数据完整性 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系简介在第在第3 3章已经介绍了在关系数据模型上数据完整性的概章已经介绍了在关系数据模型上数据完整性的概念和规则;在第念和规则;在第5 5章介绍了章介绍了CREATE TABLECRE

    30、ATE TABLE语句中可以实现的语句中可以实现的一些完整性约束。这里介绍与数据完整性有关的其他一些内一些完整性约束。这里介绍与数据完整性有关的其他一些内容。容。36 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系规则在在CREATE CREATE TABLETABLE语语句句中中可可以以使使用用CHECKCHECK子子句句实实现现一一些些用用户户定定义义完完整整性性或或域域完完整整性性约约束束。另另外外还还可可以以通通过过“规规则则”(RULERULE)来实现用户定义完整性或域完整性。)来实现用户定义完整性或域完整性。CHECKCHECK约约束束固固定定在在一一

    31、个个表表的的一一个个列列上上,它它只只在在指指定定的的列列上上起起作作用用。如如果果在在不不同同的的列列上上有有相相同同的的约约束束条条件件,则则可可以以使使用规则,一个规则可以绑定在多个列上。用规则,一个规则可以绑定在多个列上。规则是一种独立的数据库对象,它可以绑定到一个列上来规则是一种独立的数据库对象,它可以绑定到一个列上来约束该列的取值范围等。约束该列的取值范围等。37 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系建立规则CREATE RULE CREATE RULE rulerule AS AS condition_expressioncondition

    32、_expression rulerule:给出新建规则的名称;:给出新建规则的名称;condition_expressioncondition_expression:定义规则的条件,可以是任何有:定义规则的条件,可以是任何有效的表达式,并且可以包含诸如算术运算符、关系运算符效的表达式,并且可以包含诸如算术运算符、关系运算符和谓词(如和谓词(如ININ、LIKELIKE、BETWEENBETWEEN)之类的元素。)之类的元素。注意:规则不能引用列或其它数据库对象,规则可以包含注意:规则不能引用列或其它数据库对象,规则可以包含不引用数据库对象的内置函数;不引用数据库对象的内置函数;conditio

    33、n_expressioncondition_expression需需要包含一个变量,变量的前面有一个要包含一个变量,变量的前面有一个 前缀;该表达式引前缀;该表达式引用通过用通过 UPDATEUPDATE或或INSERTINSERT语句输入或传递的字段值。语句输入或传递的字段值。38 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系实例例如,规定某类数值对象的取值范围是例如,规定某类数值对象的取值范围是1000100030003000,则可以,则可以定义规则:定义规则:CREATE RULE CREATE RULE range_rulerange_rule ASAS

    34、range=1000 AND range=1000 AND range=300039 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系规则的绑定规规 则则 是是 独独 立立 的的 数数 据据 库库 对对 象象,要要 通通 过过 系系 统统 存存 储储 过过 程程sp_bindrulesp_bindrule把把规规则则绑绑定定到到数数据据列列上上,该该系系统统存存储储过过程程的的格式是:格式是:sp_bindrulesp_bindrule rulenamerulename,objnameobjname ,futureonlyfutureonly rulenamerul

    35、ename是用是用CREATE RULECREATE RULE命令建立的规则名;命令建立的规则名;objnameobjname指出要绑定的表和列或用户定义的数据类型;指出要绑定的表和列或用户定义的数据类型;futureonlyfutureonly,当当绑绑定定规规则则到到用用户户定定义义的的数数据据类类型型时时可可以以选选用用此此项项,该该选选项项是是禁禁止止已已经经存存在在的的、用用用用户户定定义义数据类型定义的列遵循新的规则。数据类型定义的列遵循新的规则。40 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系实例例如,将规则例如,将规则range_ruleran

    36、ge_rule绑定到职工表的工资列上绑定到职工表的工资列上 sp_bindrulesp_bindrule range_rulerange_rule,职工职工.工资工资 使用使用CREATE RULECREATE RULE命令创建的规则对象,可以绑定到多个命令创建的规则对象,可以绑定到多个数据列上,即一个规则可以反复使用。数据列上,即一个规则可以反复使用。41 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系绑定的消除和规则的删除绑绑定定到到数数据据列列上上的的规规则则可可以以去去除除,相相应应的的系系统统存存储储过过程程是是sp_unbindrulesp_unbin

    37、drule。例例如如,取取消消绑绑定定在在职职工工表表工工资资列列上上的的规规则可以使用如下语句:则可以使用如下语句:sp_unbindrulesp_unbindrule 职工职工.工资工资 规规则则可可以以删删除除,删删除除规规则则的的命命令令是是DROP DROP RULERULE,但但是是删删除除规则之前,必须首先解除所有的绑定。规则之前,必须首先解除所有的绑定。42 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系默认值在在CREATE TABLECREATE TABLE命令中可以使用命令中可以使用DEFAULTDEFAULT约束为数据列定约束为数据列定义默

    38、认值。这里介绍另外一种方法:使用义默认值。这里介绍另外一种方法:使用CREATE DEFAULTCREATE DEFAULT命令创建默认值对象。命令创建默认值对象。43 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系命令的格式CREATE DEFAULT CREATE DEFAULT defaultdefault AS AS constant_expressionconstant_expressiondefaultdefault:是建立的默认值对象名;:是建立的默认值对象名;constant_expressionconstant_expression:定义默认值的

    39、常量表达式。:定义默认值的常量表达式。44 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系实例例如,定义一个值为例如,定义一个值为“北京北京”的默认值对象的默认值对象val_bjval_bjCREATE DEFAULT CREATE DEFAULT val_bjval_bjAS AS 北京北京 45 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系绑定默认值默认值是独立的数据库对象,它要作用于某个数据对象,默认值是独立的数据库对象,它要作用于某个数据对象,则也和绑定规则一样,需要用类似的系统存储过程把默认则也和绑定规则一样,需要用类似的

    40、系统存储过程把默认值绑定到列,绑定默认值的系统存储过程是值绑定到列,绑定默认值的系统存储过程是sp_bindefaultsp_bindefault,具体格式是:,具体格式是:sp_bindefaultsp_bindefault defnamedefname,objnameobjname ,futureonlyfutureonly defnamedefname:是用:是用CREATE DEFAULTCREATE DEFAULT命令建立的默认值对象名;命令建立的默认值对象名;objnameobjname:指出要绑定的表和列或用户定义的数据类型;:指出要绑定的表和列或用户定义的数据类型;future

    41、onlyfutureonly,当绑定默认值到用户定义的数据类型时可以,当绑定默认值到用户定义的数据类型时可以选用此项,该选项是禁止已经存在的、用用户定义数据类选用此项,该选项是禁止已经存在的、用用户定义数据类型定义的列遵循新的默认值约定。型定义的列遵循新的默认值约定。46 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系实例例如,将定义的默认值对象例如,将定义的默认值对象val_bjval_bj绑定到仓库关系的城市绑定到仓库关系的城市列上和供应商关系的地址列上:列上和供应商关系的地址列上:sp_bindefaultsp_bindefault val_bjval_bj

    42、,仓库仓库.城市城市 sp_bindefaultsp_bindefault val_bjval_bj,供应商供应商.地址地址 47 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系绑定的去除和默认值的删除绑绑定定到到数数据据列列上上的的默默认认值值可可以以去去除除,相相应应的的系系统统存存储储过过程程是是sp_unbindefaultsp_unbindefault。例例如如,取取消消绑绑定定在在供供应应商商表表地地址址列列上上的的默默认认值值可可以以使使用用如如下语句:下语句:sp_unbindefaultsp_unbindefault 供应商供应商.地址地址 默默

    43、认认值值也也可可以以删删除除,删删除除默默认认值值的的命命令令是是DROP DROP DEFAULTDEFAULT,但是删除默认值之前,必须首先解除所有的绑定。但是删除默认值之前,必须首先解除所有的绑定。48 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系用户定义数据完整性除了实体完整性约束和参照完整性约束,其他与数据完整除了实体完整性约束和参照完整性约束,其他与数据完整性的有关的内容都是用户定义数据完整性的范畴。性的有关的内容都是用户定义数据完整性的范畴。而实现用户定义数据完整性,除了而实现用户定义数据完整性,除了CREATE TABLECREATE TABLE命令中的命令中的CHECKCHECK约束,以及本章介绍的规则(约束,以及本章介绍的规则(RULERULE)和默认值)和默认值(DEFAULT)(DEFAULT),更多的是使用触发器来实现灵活、复杂的数,更多的是使用触发器来实现灵活、复杂的数据完整性要求。据完整性要求。49 数据库技术数据库技术合肥学院电子信息与电气工程系合肥学院电子信息与电气工程系本章小节本章小节 存储过程存储过程 触发器触发器 数据完整性数据完整性50


    注意事项

    本文(第06章 存储过程、触发器和数据性.ppt)为本站会员(星星)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922