---觸發器練習 --在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