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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM