- 3
- 0
- 约7.9千字
- 约 25页
- 2017-06-12 发布于浙江
- 举报
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语句指派的事务名称。 功能:回滚一个事务,将显式事务或隐
您可能关注的文档
- 10_活性污泥2_5动力学与曝气.ppt
- 10数字控制器的实现.ppt
- 10机械加工工艺的基本知识.ppt
- 10波式和辐射式传感器(《传感器基础》课件).ppt
- 10清洗及返修技术.ppt
- 10原子吸收.ppt
- 10标高投影PPt.ppt
- 10生产能力与生产计划.ppt
- 10磨损条件下工作的零件的选材及防护.ppt
- 10特种热处理.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 虹口区2009学年第一学期高三英语期终教学质量监控测试卷(附答案).doc VIP
- CNAS-CL01-2018检验和校准实验室能力认可准则培训教材.ppt
- GMP标准简介(程克文)课件.pptx VIP
- 2025年中国大唐集团有限公司校园招聘笔试参考题库附带答案详解.docx
- 民族药四数九里香.pptx VIP
- 2022年四川省雅安市中考数学试卷真题(附答案详解)文字可复制.pdf
- 2026年春季北师大版(2024)三年级下册数学教学计划(含进度表).docx VIP
- 党支部2025年度组织生活会个人对照在学习贯彻党的创新理论、在加强党性锤炼、在联系服务群众、在发挥先锋模范作用、在改作风树新风存在的不足.docx VIP
- 职业生涯规划与就业创业指导 第3版 第4章 生涯目标与职业决策.ppt VIP
- 2026年Shopee店铺运营实战手册.pptx
原创力文档

文档评论(0)