我是靠谱客的博主 义气星星,这篇文章主要介绍Insert , Update , Delete 触发器,现在分享给大家,希望可以做个参考。

update触发器和delete触发器举例

      定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
      常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义了新的触发器,这里不提)

      我为什么要使用触发器?比如,这么两个表:

      Create Table Student(              --学生表
        StudentID int primary key,       --学号
        ....
       )

      Create Table BorrowRecord(               --学生借书记录表
        BorrowRecord   int identity(1,1),       --流水号  
        StudentID      int ,                    --学号
        BorrowDate     datetime,                --借出时间
        ReturnDAte     Datetime,                --归还时间
        ...
      )

     用到的功能有:
        1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);
        2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。
     等等。

     这时候可以用到触发器。对于1,创建一个Update触发器:

     Create Trigger truStudent
       On Student
       for Update
     As
       if Update(StudentID)
       begin

         Update BorrowRecord
           Set StudentID=i.StudentID
           From BorrowRecord br , Deleted   d ,Inserted i
           Where br.StudentID=d.StudentID

       end       
                
     理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。
     一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。

     对于2,创建一个Delete触发器
     Create trigger trdStudent
       On Student
       for Delete
     As
       Delete BorrowRecord
         From BorrowRecord br , Delted d
         Where br.StudentID=d.StudentID

insert触发器实例

INSERT触发器使用实例:现在数据库中有2个表orders和orderdetail 要实现orders表中插入一条记录insert into(orderid,number) values(4,1004) 后 相应的在orderdetails表中系统自动插入一条记录(orderid,productid) values(4,104),其中orderid是刚刚插入orders表中的orderid值 先假设productid为一个 常量值104

实现此功能需要在orders表上加一个触发器,触发器代码为:

create trigger tr_insert_orders
 on orders
for insert
 as
--begin
declare @id int
select @id=orderid from inserted
select @num=orderid from inserted
insert orderdetails(orderid,productid) values(@id,@num)
--end

最后

以上就是义气星星最近收集整理的关于Insert , Update , Delete 触发器的全部内容,更多相关Insert内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(101)

评论列表共有 0 条评论

立即
投稿
返回
顶部