SQL Server -為代碼減負之觸發器

來源:互聯網
上載者:User

標籤:style   blog   color   使用   io   strong   for   ar   

  1. 觸發器是一張表的增刪改操作,引起或觸發對另一張表的增刪改操作,所以觸發器便有3種類型,分別是deleted觸發器,Update觸發器,insert觸發器
  2. 觸發器又根據替換原來的增刪改操作,還是在原來的增刪改完成之後進行增刪改操作,分為Instead of觸發器和For或者After觸發器(for和after屬於一種觸發器)
  3. 觸發器的使用涉及到兩張非常重要的表用來儲存已經改變或者已經在第一章被操作的表上不存在的記錄,分別是虛擬表Inserted和虛擬表Deleted

 

         

虛擬表Inserted

 虛擬表Deleted

在表記錄新增時

存放新增的記錄 

不儲存記錄

修改時

存放用來更新的新記錄

存放更新前的記錄

刪除時

不儲存記錄

存放被刪除的記錄

 

  1. 下面舉一個在機房收費系統重構個人版中用到的易於理解的關於觸發器的小例子
    1. 在我們刪除T_OnWork_info表中的正在上機工作記錄時,同時向T_Work_info表中寫入工作記錄,還同時將T_Admin_info表中的IsOn欄位改為False
      CREATE TRIGGER trigger_delOnWork ON T_OnWork_info FOR DELETE AS DECLARE @name varchar(10)DECLARE @loginDate varchar(10)DECLARE @loginTime varchar(10)DECLARE @logoutDate varchar(10)DECLARE @logoutTime varchar(10)DECLARE @comName varchar(10) SELECT @name =(SELECT NAME FROM deleted )SELECT @loginDate =(SELECT loginDate  FROM deleted )-----deleted表用於儲存T_OnWork表中已經刪除的記錄SELECT @loginTime =(sELECT loginTime  FROM deleted )SELECT @comName =(SELECT comName  FROM deleted )SET @logoutDate=convert(varchar(10),getdate(),101)SET @logoutTime =convert(varchar(10),getdate(),108) if (SELECT COUNT(*) FROM deleted  )=1 BEGIN INSERT INTO T_Work_info(Name,loginDate,loginTime,logoutDate,logoutTime,comName) VALUES(@name,@loginDate ,@loginTime ,@logoutDate,@logoutTime,@comName ) UPDATE T_Admin_info SET IsOn='False' WHERE Name=(SELECT Name FROM deleted ) ROLLBACK TRAN     --交易回復 END
      怎麼樣,觸發器很簡單吧,大家可以嘗試著用用,觸發器+事務的復原機制,很容易地做到了為代碼減負
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.