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

  • 2
  • 0
  • 约6.6千字
  • 约 63页
  • 2015-12-13 发布于广东
  • 举报

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

使用sp_helptext系统存储过程 * 第*页 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语句来实现用户定义函数的创建、修改和删除。在创建

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档