欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL server 三種常用的觸發(fā)器

 更新時間:2025年03月01日 10:44:53   作者:漫天轉(zhuǎn)悠  
文章介紹了SQL Server中三種常用的觸發(fā)器:插入觸發(fā)器、刪除觸發(fā)器和更新觸發(fā)器,每種觸發(fā)器在特定操作(插入、刪除、更新)發(fā)生時觸發(fā),觸發(fā)器可以訪問兩個虛擬表:Inserted(新數(shù)據(jù))和Deleted(舊數(shù)據(jù)),用于獲取和操作數(shù)據(jù),感興趣的朋友一起看看吧

SQL server 三種常用的觸發(fā)器

1.觸發(fā)器的創(chuàng)建

創(chuàng)建觸發(fā)器時可以先判斷一下當(dāng)前數(shù)據(jù)庫里是否已存在相同名字的觸發(fā)器
sql server的觸發(fā)器名保存在sysobjects這張表里所以要知道是否存在只需創(chuàng)建前查詢下該表即可

 if not exists(select 1 from sysobjects where name='sqlserver_test(需創(chuàng)建的觸發(fā)器名稱)'
  and type='tr')(如果當(dāng)前觸發(fā)器不存在)
 begin (則創(chuàng)建觸發(fā)器)
  create trigger sqlserver_test(需創(chuàng)建的觸發(fā)器名)
  on sqlserver_test_list(當(dāng)此表發(fā)生對應(yīng)的觸發(fā)器事件時觸發(fā))
  for update (選擇觸發(fā)器事件)
  as
    if update(recommend) (判斷trigger sqlserver_test表的該字段發(fā)生了改變)
   begin 
  select ‘這是一個觸發(fā)器的測試' (執(zhí)行語句基本上是SQL語句都可以寫,但是注意觸發(fā)器有個執(zhí)行過程如果觸發(fā)器對應(yīng)事件會觸發(fā)頻繁建議還是少寫為好,以免造成事件進程鎖死??绶?wù)器查詢需要服務(wù)器打開MDSTC服務(wù))
   end
 end
 else
 此處還是不寫為好,總不可能當(dāng)前觸發(fā)器存在你寫個刪除語句吧。。。

2.insert觸發(fā)器

顧名思義在對應(yīng)表有數(shù)據(jù)插入時觸發(fā)

 create trigger sqlserver_test(需創(chuàng)建的觸發(fā)器名)
  on sqlserver_test_list(當(dāng)此表發(fā)生對應(yīng)的觸發(fā)器事件時觸發(fā))
  for insert (當(dāng)表有插入時觸發(fā))
  as
    select recommend from Inserted (取插入行該字段值)
 end

3.delete觸發(fā)器

顧名思義在對應(yīng)表有行數(shù)刪除時觸發(fā)

 create trigger sqlserver_test(需創(chuàng)建的觸發(fā)器名)
  on sqlserver_test_list(當(dāng)此表發(fā)生對應(yīng)的觸發(fā)器事件時觸發(fā))
  for delete (當(dāng)表有刪除時觸發(fā))
  as
    select recommend from Deleted (取刪除該字段的值)
 end

4.update觸發(fā)器

顧名思義在對應(yīng)表有行數(shù)更新時觸發(fā)

 create trigger sqlserver_test(需創(chuàng)建的觸發(fā)器名)
  on sqlserver_test_list(當(dāng)此表發(fā)生對應(yīng)的觸發(fā)器事件時觸發(fā))
  for update (當(dāng)表有更新時觸發(fā))
  as
    select recommend from Inserted(獲取更新后的數(shù)據(jù))
 end

5.關(guān)于取值

1.插入操作(Insert)
Inserted表有數(shù)據(jù),Deleted表無數(shù)據(jù)
提示:
可以用inserted此表獲取需要字段的值去更新其他表數(shù)據(jù)或者插入至其他表中
比較常見的就是作中間表的數(shù)據(jù)轉(zhuǎn)移
2.刪除操作(Delete)
Inserted表無數(shù)據(jù),Deleted表有數(shù)據(jù)
提示:
可以用Deleted此表獲取需要字段的值去更新其他表數(shù)據(jù)或者插入至其他表中,
比較常見的就是做刪除數(shù)據(jù)記錄或備份
3.更新操作(Update)
Inserted表有數(shù)據(jù)(新數(shù)據(jù)),Deleted表有數(shù)據(jù)(舊數(shù)據(jù))
提示:
可以用Deleted此表獲取到修改前表中的數(shù)據(jù)值,比較常見的就是做數(shù)據(jù)修改記錄或備份。用Inserted獲取到修改后的數(shù)據(jù)值,較常見為獲取功能字段供其他表進行相應(yīng)操作執(zhí)行。

到此這篇關(guān)于SQL server 三種常用的觸發(fā)器的文章就介紹到這了,更多相關(guān)SQL server 觸發(fā)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論