文档详情

第10章 存储过程和触发器.ppt

发布:2020-05-15约1.31万字共69页下载文档
文本预览下载声明
* 10.5 创建触发器 10.5.2 创建DDL触发器 例:创建服务器范围的DDL触发器,当创建数据库时,系统返回提示信息:“DATABASE CREATED”。 CREATE TRIGGER trig_create ON ALL SERVER FOR CREATE_DATABASE AS PRINT DATABASE CREATED 运行创建触发器后,使用语句: CREATE DATABASE demo 运行后,消息栏内出现我们设定的“DATABASE CREATED” 1. 查看触发器 使用SSMS查看触发器  【例】 使用SQL Server管理控制器查看student表上的触发器trigop。   解:其操作步骤如下:   (1)启动SQL Server管理控制器,在“对象资源管理器”中展开“LCB-PC”服务器节点。   (2)展开“数据库”|“school”|“表”|“student”|“触发器”|“trigop”节点,单击鼠标右键,在出现的快捷菜单中选择“编写触发器脚本为|CREATE到|新查询编辑器窗口”命令。 10.5 创建触发器 10.5.3 管理触发器   (3)出现下图所示的trigop触发器编辑窗口,用户可以在其中查看trigop触发器的源代码。 使用系统存储过程查看触发器  (1)sp_help   用于查看触发器的一般信息,如触发器的名称、属性、类型和创建时间。使用语法格式如下:    EXEC sp_help 触发器名称‘ (2)sp_helptext   用于查看触发器的正文信息。使用语法格式如下:    EXEC sp_helptext 触发器名称 (3)sp_depends   用于查看指定触发器所引用的表。使用语法格式如下:    EXEC sp_depends 触发器名称  【例】 使用系统存储过程查看student表上的触发器trigop的相关信息。   解:使用的程序如下: USE school EXEC sp_help trigop EXEC sp_helptext trigop   其结果如图所示,上下两部分分别对应两次系统存储过程调用的结果。 2.启用或禁用触发器 使用SSMS禁用或启用触发器  【例】 使用SQL Server管理控制器禁用test数据库中table10表上的触发器trigtest。   解:其操作步骤如下:   (1)启动SQL Server管理控制器,在“对象资源管理器”中展开“LCB-PC”服务器节点。   (2)展开“数据库”|“test”|“表”|“table10”|“触发器”|“trigtest”节点,单击鼠标右键,在出现的快捷菜单中选择“禁用”命令。若该触发器已禁用,在这里选择“启用”命令即可启动该触发器。   说明:本方法不适合于DDL触发器。 使用命令禁用或启用触发器 可用ALTER TABLE语句启用或禁用触发器,其语法格式如下:   ALTER TABLE 表名   {ENABLE|DISABLE} TRIGGER 触发器名称 其中,ENABLE表示启用触发器;DISABLE表示禁止触发器。 可用ENABLE|DISABLE启用或禁用触发器,其基本语法格式如下: ENABLE|DISABLE TRIGGER 触发器名称 on 表名 例如:禁用student表上的触发器t1 DISABLE TRIGGER t1 on student 例如:启用student表上的触发器t1 ENABLE TRIGGER t1 on student 3. 修改触发器   可以使用SQL Server管理控制器和ALTER TRIGGER语句修改触发器。 4. 删除触发器   可以使用SQL Server管理控制器和DROP TRIGGER语句删除触发器。 * DML触发器 AFTER触发器:这类触发器是在记录已经被改变完,相关事务提交后,才会被触发执行。主要是用于记录变更后的处理或检查,一旦发现错误,可以用ROLLBACK TRANSACTION语句来回滚本次的操作。对同一个表操作,可定义多个AFTER触发器。 INSTEAD OF触发器:这类触发器并不去执行其所定义的操作(INSERT、UPDATE、DELETE),而去执行触发器本身所定义的操作。这类触发器一般是用来取代原本的操作,在记录变更之前被触发的。 10.4 触发器概述 10.4.2 触发器的种类 SQL Server 每个触发器创建两个逻辑表:deleted表和inserted表。 这两个表是建在数据库服务器的内存中的,是由系统管理的逻辑表,而不是真正存储在数据库中的物理表。对于这两个表,用户只有读取的权限,没
显示全部
相似文档