2013/8/19 10:50:46

数据库技术:Delete触发器的创建执行

数据库技术:Delete触发器的创建执行

几年前,数据库技术老师上课的PPT教程,PPT名称为“触发器的创建——Delete触发器的创建”。现在摘部分下来看看,现在我是已经把这些都忘记了的,懂技术的看下有什么问题没?

1.创建触发器的Transact-SQL命令
语法格式:
     CREATE  TRIGGER 触发器名称  ON {表 | 视图}
      [ WITH  ENCRYPTION ]
    {FOR | AFTER | INSTEAD OF}
    {[DELETE][,][INSERT][,][UPDATE]}
     AS
     Transact-SQL 语句[...n] /*触发器被激活时将要执行的动作,由一条或若干条Transact-SQL语句*/
            注意:CREATE TRIGGER 必须是批处理中的第一条语句。
 
 
2 在企业管理器中创建触发器的步骤:
(1)启动企业管理器,依次展开数据库、student、表节点。
(2)展开需要建立触发器的表(如班级), 右键单击触发器,选择“新建触发器”命令。
(3)然后打开“创建触发器模板”,在模板中输入触发器创建文本。
(4)单击工具栏上的“执行”按钮,完成触发器的创建。


【课堂练习】
        在student数据库中建立一个名为delete_zhye的DELETE触发器,存储在“专业”表中。当用户删除“专业”表中的记录时,如果“班级”表引用了此记录的专业代码,则提示用户:“该专业表正被班级表使用,不能删除此条记录!”,否则提示:“记录已成功删除!”。

其输入代码如下:
CREATE  TRIGGER  delete_zhye   ON  专业
FOR  DELETE
AS
IF(SELECT COUNT(*)  FROM 班级 INNER JOIN DELETED
          ON  班级.专业代码=DELETED.专业代码)>0
     BEGIN
            PRINT (‘该专业表正被班级表使用,不能删除此条记录!')
            ROLLBACK  TRANSACTION
     END
ELSE
     PRINT ‘记录已成功删除!'
GO

 


【课后思考练习题】
 1、在student数据库中,为“学生”表建立一个名为del_xs的DELETE触发器,其作用是当删除“学生”表中的几条记录时,就给予提示“你已成功删除几条记录!”的信息。
2、在student数据库中建立一个名为insert_xibu的INSERT触发器,存储在“专业”表中。当用户向“专业”表中插入记录时,如果插入了在“系部”表中没有的系部代码,则提示用户不能插入记录,否则提示记录插入成功。