《数据库管理系统 SQL Server》实验报告
器。
二、创建触发器
1.
使用
SQL Server
管理控制台创建
DML
触发器
在
SQL Server
管理控制台中,展开指定的服务器和数据库,单击要创建触发器的数
据表,右击其中的“触发器”文件夹。从弹出的快捷菜单中选择“新建触发器”选项,会出
现新建触发器模板窗口,在新建的触发器模板窗口中单击“查询”菜单中“指定模板参数的
值”选项,会弹出“指定模板参数的值”对话框,可以在这里设置参数的具体值。
2.
使用
Transact-SQL
语句创建
DML
触发器
使用
Transact-SQL
语言中的
CREATE TRIGGER
命令也可以创建
DML
触发器:
CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ]
[ UPDATE ] [ , ] [ DELETE ] }
AS { sql_statement [ ; ] [ ,...n ] }
<dml_trigger_option> ::=[ ENCRYPTION ] [ EXECUTE AS Clause ]
其中,各参数的说明如下:
schema_name
:
DML
触发器所属架构的名称。
trigger_name
:触发器的名称。
table | view
:对其执行
DML
触发器的表或视图。
WITH ENCRYPTION
:对
CREATE TRIGGER
语句的文本进行加密处理。
EXECUTE AS
:指定用于执行该触发器的安全上下文。
FOR | AFTER
:
AFTER
指定触发器仅在触发
SQL
语句中指定的所有操作都已成功
执
行时才被触发。不能对视图定义
AFTER
触发器。
INSTEAD OF
:指定执行
DML
触发器而不是触发
SQL
语句。
{[DELETE] [,] [INSERT] [,] [UPDATE]}
:指定数据修改语句。必须至少指定一个选
项。
sql_statement
:触发条件和操作。
当创建一个触发器时必须指定以下几项内容:
触发器的名称;
在其上定义触发器的表;
触发器将何时激发;
执行触发操作的编程语句。
注意
DML
触发器时生成的两个幻表:
DML
触发器可以使用两个特殊的临时表,它们分别是
inserted
表和
deleted
表。这
两个表都存在于内存中。它们在结构上类似于定义了触发器的表。
在
inserted
表中存储着被
INSERT
和
UPDATE
语句影响的新的数据行 。在执行
INSERT
或
UPDATE
语句时,新的数据行被添加到基本表中,同时这些数据行的备
份被复制到
inserted
临时表中。
在
deleted
表 中 存储 着 被
DELETE
和
UPDATE
语 句 影 响的 旧 数 据行 。在 执行
DELETE
或
UPDATE
语句时,指定的数据行从基本表中删除,然后被转移到了
deleted
表中。在基本表和
deleted
表中一般不会存在相同的数据行。
一个
UPDATE
操作实际上是由一个
DELETE
操作和一个
INSERT
操作组成的。在
第 2 页 2011 年 5 月 4 日
评论