MSSQL 触发器

---触发器练习

--在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序
 CREATE TABLE Student 
 ( 
    SID INT PRIMARY KEY       --学号 
 ) 

 CREATE TABLE BorrowRecord
    (
      --学生借书记录表 
      BorrowRecord INT IDENTITY(1, 1) ,       --流水号   
      StudentID INT ,                    --学号 
      BorrowDate DATETIME ,                --借出时间 
      ReturnDAte DATETIME,                --归还时间 
       
      
    )
--EXEC sp_rename 'student.sid', 'studentid', 'COLUMN'
INSERT BorrowRecord VALUES(1,GETDATE(),GETDATE())
INSERT BorrowRecord VALUES(1,GETDATE(),GETDATE())

INSERT BorrowRecord VALUES(2,GETDATE(),GETDATE())

INSERT BorrowRecord VALUES(3,GETDATE(),GETDATE())

------------Insert----------------------------
if (object_id('tr_insert', 'TR') is not null)    
drop trigger tr_insert
go
CREATE TRIGGER tr_insert
ON BorrowRecord
FOR insert
as
DECLARE @studentid INT;
SELECT @studentid=studentid FROM INSERTED
INSERT INTO student VALUES(@studentid) ;
go
INSERT BorrowRecord VALUES(11,GETDATE(),GETDATE())
----------------Update---------------------------
if (object_id('truStudent', 'TR') is not null)    
drop trigger truStudent
go
create TRIGGER truStudent 
    ON student --在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
--实例
UPDATE student SET studentid=2 WHERE studentid=7
SELECT * FROM BorrowRecord
SELECT * FROM student
----------------delete---------------------------
if (object_id('deletri', 'TR') is not null)    
drop trigger deletri
go
CREATE TRIGGER deletri
ON student
FOR DELETE
AS 
DELETE BorrowRecord FROM BorrowRecord br,DELETED d
WHERE br.StudentID=d.studentid
--实例
DELETE FROM student WHERE studentid=7
SELECT * FROM BorrowRecord

 

转载于:https://www.cnblogs.com/wangyuelang0526/archive/2012/07/09/2582613.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值