- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2021/3/27 * 13.4 用户自定义函数 用户自定义函数的使用 当调用标量值函数时,必须加上“所有者”,通常是dbo(但不是绝对,可以在企业管理器中的“用户定义函数”中查看所有者) 当调用表值函数时,可以只使用函数名。 例13-7:调用例13-4函数,返回当前日期对应的季度值。 select dbo.DatetoQuarter(getdate()) 例13-8:调用例13-6函数,返回学号为s2008001的学生姓名和各科成绩。 select * from stuinfo(s2008001) 2021/3/27 * 13.5 触发器及其作用、效果演示 触发器是一种特殊类型的存储过程。 触发器主要是通过事件进行触发而被执行的,而存储过程可以通过过程名字直接调用。当对某一表进行UPDATE、INSERT、DELETE操作时,SQL Server就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。 触发器的主要作用就是能够实现由主键和外键所不能保证的参照完整性和数据的一致性。 2021/3/27 * 13.5 触发器及其作用、效果演示 例13-9:为“课程表”创建触发器TRIGGER_课程表,当执行删除时激活,判断删除的课程号是否已被选,已选课程拒绝删除。 CREATE TRIGGER [TRIGGER_课程表] ON [dbo].[课程表] FOR DELETE AS if exists(select * from deleted inner join 选课表 on deleted.课程号=选课表.课程号) begin print 在选课表中有该门课程,不能删除 rollback tran return end 2021/3/27 * 小结与提问 存储过程、用户自定义函数和触发器 注解: 编译——指的是将脚本语言转换成可执行的机器语言的过程。 程序在计算机执行前需要编译。 存储过程的特点: 1.是存储在服务器上的 Transact-SQL 语句的命名集合 2.是封装重复性任务的方法 3.支持用户声明变量、条件执行以及其他强有力的编程特性 系统存储过程(sp_):存储在 master 数据库内,以“sp_”前缀标识 本地存储过程:本地存储过程在单独的用户数据库内创建 临时存储过程:临时存储过程可能是局部的,名称以“#”开头;也可能是全局的,名称以“##”开头 远程存储过程:远程存储过程是 SQL Server 的一个传统功能,分布式查询支持这项功能 扩展存储过程(xp_):扩展存储过程以动态链接库(DLL)的形式实现,在 SQL Server 环境外执行 2021/3/27 * 第十三章 存储过程、用户自定义函数与触发器 计算中心 2021/3/27 * 本章内容 13.1 存储过程概述 13.2 通过企业管理器创建、修改和删除存储过程 13.3 存储过程的执行与参数传递 13.4 用户自定义函数 13.5 触发器及其作用、效果演示 2021/3/27 * 13.1 存储过程概述 存储过程(Stored Procedure) 是什么? 简单的说:存储过程是将常用的或很复杂的工作,预先用T-SQL语句写好并用一个指定的名称存储起来的语句集合。 课本的定义:是SQL Server服务器上一组预编译的T-SQL语句,用于完成某项任务,它可以接受参数、返回状态值和参数值,并且可以嵌套调用。 举例 2021/3/27 * 13.1 存储过程概述 为什么要使用存储过程? 存储过程在创建时即在服务器上进行编译,所以执行起来比SQL语句快,且能减少网络通信的负担。 可以在单个存储过程中执行一系列SQL语句,完成复杂的操作。 存储过程可以重复使用,减少数据库开发人员的工作量 。 安全性高,可设定只有某些用户才具有对指定存储过程的使用权。 2021/3/27 * 13.1 存储过程概述 存储过程的类型 系统存储过程 例如:EXEC sp_helpdb 用户定义存储过程:由用户创建并能完成某一特定功能的存储过程。 临时存储过程 扩展存储过程 例如:EXEC xp_cmdshell dir d: 2021/3/27 * 13.1 存储过程概述 存储过程的功能 (1)接收输入参数并以输出参数的形式为调用过程或批处理返回多个值。 (2)包含执行数据库操作的编程语句,包括调用其他过程。 (3)为调用过程或批处理返回一个状态值,以表示成功或失败(及失败原因)。 存储过程特点 2021/3/27 * 13.2 创建、修改和删除存储过程 创建存储过程的指导原则 避免出现存储过程的拥有者和底层对象的拥有者不同的情况,建议由db
文档评论(0)