SQL Server 2008基础教程 教学课件 作者 978 7 302 23526 2 ch11.pptVIP

SQL Server 2008基础教程 教学课件 作者 978 7 302 23526 2 ch11.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DML触发器的工作原理 现在介绍触发器是如何工作的。通过了解触发器的工作原理,可以更好地使用触发器,写出效率更高的触发器。下面主要介绍INSERT、DELETE和UPDATE类型触发器的工作原理。 向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。inserted表是一个逻辑表,保存了所插入记录的备份,允许用户参考INSERT语句中数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的记录,总是触发器表中一行或多行记录的冗余。 * 第*页 DELETE触发器 当触发一个DELETE触发器时,被删除的记录放在一个特殊的deleted表中。deleted表是一个逻辑表,用来保存已经从表中删除的记录。该deleted表允许参考原来的DELETE语句删除的已经记录在日志中的数据。 * 第*页 UPDATE触发器 修改一条记录就等于插入一条新记录同时删除一条旧记录。同样,UPDATE语句也可以看成是由删除一条记录的DELETE语句和增加一条记录的INSERT语句组成。当在某一个有UPDATE触发器表的上面修改一条记录时,表中原来的记录移动到deleted表中,修改过的记录插入到了inserted表中。触发器可以检查deleted表和inserted表以及被修改的表,以便确定是否修改了多个行和应该如何执行触发器的操作。 * 第*页 一个DML触发器示例 为了更加全面地掌握开发触发器的步骤和技术,本节通过一个具体的示例,全面讲述使用Transact-SQL语言开发和创建触发器的技术。 一般地,开发触发器的过程包括用户需求分析、确定触发器的逻辑结构、编写触发器代码和测试触发器。 * 第*页 创建accountData表 * 第*页 创建auditAccountData表 创建t_accountData_insert触发器 创建t_accountData_delete触发器 一组插入数据的操作 审计到的插入数据的操作 一组删除数据的操作 审计到的删除数据的操作 DDL 触发器 DDL触发器与DML触发器有许多类似的地方,都可以自动触发完成规定的操作或使用CREATE TRIGGER语句创建等,但是也有一些不同的地方。例如,DDL触发器的触发事件主要是CREATE、ALTER、DROP以及GRANT、DENY、REVOKE等语句,并且触发的时间条件只有AFTER,没有INSTEAD OF。 CREATE TRIGGER 创建DDL触发器的CREATE TRIGGER语句的基本语法形式如下: CREATE TRIGGER trigger_name ON { ALL SERVER | DATABASE } WITH ENCRYPTION { FOR | AFTER } {event_type} AS sql_statement 定义一个DDL触发器 删除表的操作失败 11.3 用户定义函数 在Microsoft SQL Server 2008系统中,用户定义函数是接受参数、执行操作并且将运算结果以值的形式返回的例程。这种返回值既可以是单个标量值,也可以是一个结果集。在Microsoft SQL Server 2008系统中,用户定义函数可以使用Transact-SQL语言编写,也可以使用.NET编程语言来编写。 用户定义函数的特点 使用Transact-SQL编写的用户定义函数通过缓存计划并在重复执行时重用它来降低Transact-SQL代码的编译开销。也就是说,每次使用用户定义函数时均无需重新解析和重新优化,从而大大缩短了执行时间。减少网络流量,基于某种无法用单一标量表达式表示的复杂约束来过滤数据的操作,可以表示为函数。然后,该函数可以在WHERE子句中调用,以减少发送至客户端的数字或行数。 结构 在Microsoft SQL Server 2008系统中,所有的用户定义函数都具有相同的由两部分组成的结构:标题和正文。 标题可以定义下列内容。 具有可选架构/所有者名称的函数名称。 输入参数名称和数据类型。 可以用于输入参数的选项。 返回参数数据类型和可选名称。 可以用于返回参数的选项。 正文定义了函数将要执行的操作,这些操作可以是一个或多个Transact-SQL语句,也可以是.NET程序集的引用。 创建用户定义函数时的考虑 在Microsoft SQL Server 2008系统中,可以分别使用CREATE FUNCTION、ALTER FUNCTION和DROP FUNCTION语句来实现用户定义函数的创建、修改和删除。在创建用户定义函数时,每个完全限定用户函数名称(schem

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档