1. 程式人生 > >Sql Server 觸發器Update、Insert、Delete

Sql Server 觸發器Update、Insert、Delete

什麼是觸發器

在SQL Server裡面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程式。觸發器是一個特殊的儲存過程。

常見的觸發器一共有三種 Insert, Update,Delete

為什麼要用觸發器

用觸發器和儲存過程差不多,減少了程式檢索資料庫的時間

Insert觸發器

當我的退卡表插入一條記錄的時候我賬單彙總表裡的 支出(expense)會在原來的基礎上增加新退卡的金額

Create trigger [dbo].[CountCancelCard] ------觸發器名稱
  on [dbo].[T_CancelCard]--------------------建立觸發器的表名
  after insert--------------------------------------什麼型別的觸發器
  as
  update T_CheckOut set expense=expense + inserted.cash  from T_CheckOut,inserted-----需要觸發的內容

Delete觸發器

兩個表,一個是學生的資訊表,一個是學生的借書記錄表 當我刪除學生資訊的時候,同時刪除該學生的上下機記錄

  Create trigger DeleteStuInfo --------------觸發器名稱
       On T_StuInfo[dbo].[T_StuInfo]
       for Delete 
     As 
         Delete  T_LineLog
         From T_LineLog L ,T_StuInfo S
         Where L.StuNo=S.StuNo

Update觸發器

如果更新充值表中的金額,在彙總賬單中更新當天的淨利潤

Create trigger [dbo].[T_CountProfit]
    on [dbo].[T_LineLog]
    for update
    as      
	if UPDATE(spendCash)  ----------------------如果對錶LineLog表的消費時間進行修改
begin
	update T_CheckOut set profit=profit + inserted.spendCash----------執行這條語句
	from T_CheckOut,inserted
	where date=date
end