9.3创建触发器 触发器既可以使用TSQL语句创建,也可以在企业 管理器中创建。 创建触发器时,需要确定触发器的以下三个组成部 章分 阅·确定在其上定义触发器的表; ●触发器将何时激活。指明激活触发器的数据修 改语句,有效选项为 INSERT、 UPDATE或 DELETE 多个数据修改语句可激活同一个触发器; ●执行触发操作所执行的TSQL语句
9.3 创建触发器 触发器既可以使用T-SQL语句创建,也可以在企业 管理器中创建。 创建触发器时,需要确定触发器的以下三个组成部 分: l 确定在其上定义触发器的表; l 触发器将何时激活。指明激活触发器的数据修 改语句,有效选项为INSERT、UPDATE 或DELETE。 多个数据修改语句可激活同一个触发器; l 执行触发操作所执行的T-SQL语句。 第 9 章 触 发 器 < >
9.3创建触发器 9.3.1使用TSQL语句创建触发器 创建触发器的 CREATE TRIGGER语句的语法格式如下: CREATE TRIGGER trigger-name 第 oN table name view name a [WITH ENCRYPTIONI II FOR AFTER INSTEAD OF3 [NSERTLI 触[ DELETEILI[UPDATE 发 I NOT FOR REPLICATION AS [IF UPDATE( column) [AND OR ]UPDATE( column][.n] IF COLUMNS_ UPDATED()i bitwise_operator y updated bitmask) i comparison_operator)column_bitmask[.n] 3] sql statement[.nI } ○
9.3 创建触发器 9.3.1 使用T-SQL语句创建触发器 创建触发器的CREATE TRIGGER语句的语法格式如下: CREATE TRIGGER trigger_name ON table_name | view_name [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [INSERT][,] [DELETE][,][UPDATE]} [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ] [ ...n ] | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ] } ] sql_statement [ ...n ] }} 第 9 章 触 发 器 < >
9.3创建触发器 1.创建 TINSERT触发器 【例9-1】为成绩表( Grade)创建一个 INSERT触发器,用 于自动计算学生已修的学分 第 USE Educational GO 9章触发 如果已存在同名触发器,则先进行删除操作 IF exists(SELECT FROM dbo. sysobjects Where id object id(N TRGrade Insert') and OB JECTPROPERTY (id, N IsTrigger')=1) DROP TRIGGER TRGrade Insert GO CREATE TRIGGER TRGrade Insert/米触发器名*/ ON Grade /*作用的表*/ FOR INSERT/*创建 INSERT触发器*/ AS ○
9.3 创建触发器 1.创建INSERT触发器 【例9-1】 为成绩表(Grade)创建一个INSERT触发器,用 于自动计算学生已修的学分。 USE Educational GO -- 如果已存在同名触发器,则先进行删除操作 IF exists(SELECT * FROM dbo.sysobjects WHERE id = object_id(N'TRGrade_Insert') and OBJECTPROPERTY(id, N'IsTrigger') = 1) DROP TRIGGER TRGrade_Insert GO CREATE TRIGGER TRGrade_Insert /* 触发器名 */ ON Grade /* 作用的表 */ FOR INSERT /* 创建INSERT触发器 */ AS 第 9 章 触 发 器 < >