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

第4章触发器重点.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2)添加新项-触发器。 * (3)在触发器代码编辑窗口输入类的静态方法 using System; using System.Data; using System.Data.SqlClient; using Microsoft.SqlServer.Server; public partial class Triggers {public static void insert_stu() { SqlTriggerContext triggContext = SqlContext.TriggerContext; SqlPipe myPipe = SqlContext.Pipe; SqlCommand myCommand = new SqlCommand(); if (triggContext.TriggerAction = TriggerAction.Insert) { myCommand.CommandText = select * from XSB; } myPipe.ExecuteAndSend(myCommand); } } * (4)注册程序集,创建引用注册程序集的触发器。 CREATE ASSEMBLY Mytriggers FROM D:\design\Trigger_CLR\Trigger_CLR\bin\Debug\Trigger_CLR.dll * CREATE TRIGGER insert_stu ON XSB FOR INSERT AS EXTERNAL NAME Mytriggers.[Triggers].insert_stu * (5)设置数据库允许CLR程序集运行后,执行INSERT操作引发触发器。 * * * * * * * * LOGO SQL SERVER数据库高级管理及应用 第四章 触发器 * 第四章 触发器 触发器的类型 触发器的创建、修改与删除 3 4.1 4.2 CLR存储过程和CLR触发器 3 4.3 * 触发器: 是关联到一个表的特殊的存储过程,触发器在特定事件发生时自动执行。 触发器通常用于实现强制业务规则和数据完整性。 * 例:网上选课系统 学号 课程号 报名时间 020001 018 2012-9-5 10:11:11 020001 020 2012-9-5 10:11:13 020001 001 2012-9-5 10:11:14 课程号 课程名 学分 教师 上课时间 报名人数 001 UML理论与实践 3 徐风 周二56节 42 002 JAVA技术开发 2 李涛 周二56节 34 003 网络信息检索 2 程斌 周二晚 30 选课表 课程表 43 当学生选修一门课程,该课程的报名人数自动加1 * 4.1 触发器的类型 (1)DML触发器。 DML触发器触发的事件是数据操纵语句(DML)语句。分为三种类型:INSERT、UPDATE和DELETE。 利用DML触发器可以方便地保持数据库中数据的完整性。 (2)DDL触发器。DDL触发器触发的事件是数据定义语句(DDL)语句。这些语句主要是以CREATE、ALTER、DROP等关键字开头的语句。 4.2触发器的创建、修改与删除 * CREATE TRIGGER 触发器名 ON 表名 | 视图名 [ WITH ENCRYPTION ] FOR |AFTER | INSTEAD OF [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] AS sql语句 使用FOR/AFTER时:在触发SQL语句成功执行后,再执行触发器。 1、创建DML触发器语法 使用INSTEAD OF时:执行触发器而触发SQL语句不执行 * ★系统为每个触发器都自动创建了INSERTED表和DELETED表两个临时表。 INSERTED表存放INSERT操作时的行; DELETED表存放DELETE操作时的行。 * [例]创建一个触发器Test1,要求每当在XSB表中插入数据时,向客户端显示一条“插入一条记录!”消息。 CREATE TRIGGER TEST1 ON XSB AFTER INSERT AS BEGIN DECLARE @str char(50) SET @str=‘插入一条记录! PRINT @str END 激发触发器: INSERT INTO XSB(学号,姓名,性别,出生时间) VALUES(090001,张三,1,1992-1-3) * 【例7.11】 创建触发器,当向CJ

文档评论(0)

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

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

1亿VIP精品文档

相关文档