网站大量收购独家精品文档,联系QQ:2885784924

第10章 用户自定义函数及事务.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 用户自定义函数及事务

学习目标 1、用户定义函数的创建、修改及删除 2、掌握事务处理的基本方法,编写事务处理程序解决一般的实际应用问题 SQL Server不但提供了系统内置函数,而且还允许用户根据实际需要创建用户自定义函数。用户自定义函数是由一条或多条T-SQL语句组成的子程序,保存在数据库内。它可以具有多个输入参数,并返回一个标量值(单个数据值)或一个表。 SQL Server支持三种类型的用户自定义函数:标量函数、表值函数及用户定义聚合函数。 标量函数 标量函数创建格式 【例10.1】 使用命令行方式在Sales数据库创建名为Fn_Cost的自定义函数,用于计算Goods表的进货金额,并将其绑定到Goods表。 使用标量函数 在Goods表中增加一列,列名为金额,并将函数Fn-Cost与其绑定。 金额列为计算列。 计算列由可以使用同一表中的其他列的表达式计算得来。该表达式可以是非计算列的列名、常量、函数、变量,也可以是用一个或多个运算符连接的这些元素的任意组合。表达式不能为子查询。 计算列不允许直接修改列的值。 10.2.2 表值函数 1. 内联表值函数 2.多语句表值函数 1. 内联表值函数 内嵌表值函数没有函数体,其返回的表是单个select语句的结果集。 由于视图不支持在where子句的搜索条件中使用参数,内嵌表值函数可弥补视图的这一不足之处,即内嵌表值函数可用于实现参数化的视图功能。 【例10.2】 使用命令行方式在Sales数据库创建名为Fn_Total的自定义函数,用于统计Sell表在某一时间段内的销售情况。 2.多语句表值函数 多语句表值函数的函数体在begin-end块中定义。 函数体可以包含多条T-SQL语句,这些语句可生成行并将行插入将返回的表中。 由于视图只能包含单条select语句,而多语句表值函数可包含多条T-SQL语句。因此,多语句表值函数的功能比视图更强大。此外,多语句表值函数还可替换返回单个结果集的存储过程。 【例10.3】 使用命令行方式在Sales数据库创建名为Fn_Lan的自定义函数,该函数生成一张表,表的内容为进货价为指定价格以上的商品。 10.3 事 务 处 理 10.3.1 事务简介 事务是一个逻辑工作单元,其中包括了一系列的操作,这些操作要么全部执行,要么都不执行。典型的事务实例是两个银行之间的转账,账号A转出1000元至账号B,这笔转账业务可分解为:(1)账号A减去1000元;(2)账号B增加1000元。当然,要求这两项操作要么同时成功(转账成功),要么同时失败(转账失败)。只有其中一项操作成功则是不可接受的事情。如果确实发生了只有其中一项操作成功的话,那么应该撤销所做的操作(回滚事务),就好像什么操作都没有发生一样。 事务的4个属性 事务的模式 事务的模式可分为显式事务、隐式事务和自动事务。 显式事务:由用户自己使用T-SQL语言的事务语句定义的事务,具有明显的开始和结束标志。 隐式事务:SQL Server为用户而做的事务。例如:在执行一条insert语句时,SQL Server将把它包装到事务中,如果执行此insert语句失败,SQL Server将回滚或取消这个事务。用户可以通过执行以下命令使SQL Server进入或退出隐式事务状态: set implicit transacti on:使系统进入隐式事务模式。 set implicit transacti off:使系统退出隐式事务模式。 自动事务:SQL Server的默认事务管理模式。在自动提交模式下,每个T-SQL语句在成功执行完成后,都被自动提交;如果遇到错误,则自动回滚该语句。当用户开始执行一个显式事务时,SQL Server进入显式事务模式。当显式事务被提交或回滚后,SQL Server又重新进入自动事务模式。对于隐式事务也是如此,每当隐式事务被关闭后,SQL Server会返回自动事务模式。 10.3.2 事务处理 T-SQL语言的事务语句包括以下几种。 1.begin transaction 语句 功能:定义一个事务,标志一个显式事务的起始点。 2.commit transcation 语句 其中transaction_name是由前面begin transaction语句指派的事务名称。 功能:提交一个事务,标志一个成功的显式事务或隐式事务的结束。 说明:当在嵌套事务中使用commit transcation语句时,内部事务的提交并不释放资源,也没有执行永久修改。只有在提交了外部事务时,数据修改才具有永久性,资源才会释放。 3.rollback transcation 语句 其中“事务名”是由前面begin transaction语句指派的事务名称。 功能:回滚一个事务,将显式事务或隐

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档