萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> SQL觸發器實例講解

SQL觸發器實例講解

SQL觸發器實例1 
定義: 何為觸發器?在SQL Server裡面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。 
常見的觸發器有三種:分別應用於Insert , Update , Delete 事件。 
我為什麼要使用觸發器?比如,這麼兩個表: 
復制代碼代碼如下:
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 --在Student表中創建觸發器 
for Update --為什麼事件觸發 
As --事件觸發後所要做的事情 
if Update(StudentID) 
begin 
Update BorrowRecord 
Set StudentID=i.StudentID 
From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted臨時表 
Where br.StudentID=d.StudentID 
end 
理解觸發器裡面的兩個臨時的表:Deleted , Inserted 。注意Deleted 與Inserted分別表示觸發事件的表“舊的一條記錄”和“新的一條記錄”。 
一個數據庫系統中有兩個虛擬表用於存儲在表中記錄改動的信息,分別是: 

copyright © 萬盛學電腦網 all rights reserved