觸發器簡單小結

2021-06-19 11:07:51 字數 1607 閱讀 7998

首先介紹觸發器的兩個最重要的基礎知識:

1、 觸發器分為兩種:instead of 

和after 

觸發器。

after

觸發器,顧名思義,就是在你

sql語句(

insert,delete,update

)執行之後進行的操作。

instead of 

則是在sql

語句之前,而且並不執行

sql語句。

2、 sql server為每乙個觸發器都準備了兩個表:

inserted

表和deleted

表,當執行

insert

操作的時候,

inserted

存入了要插入的資料,結構和要插入的資料表結構相同。

delete

也是相同的。它們是在記憶體中,只能讀取,不能修改,觸發器結束,表也會刪除。

一、 觸發器基本語句

1、 建立觸發器

create trigger trigger_name

on [ insert, update,delete ]

assql_statement

2、 刪除觸發器:

drop trigger trigger_name

3、 檢視資料庫中已有觸發器:

select * from sysobjects where xtype='tr'

4、 修改觸發器:

alter trigger trigger_name

on [ insert, update,delete ]

assql_statement

二、 可能大家感覺上面的語句大家在書上都能看到,對自己沒有太大幫助還是不會寫,給大家乙個例項,大家就會豁然開朗,知道上面的語句都是什麼意思。

下面這個例項作用是當我們向輪胎出入庫記錄表插入資料的時候,同時將輪胎的資料從倉庫表中新增和刪除。 

create trigger tyre_in_out_insert

on tyre_out_in //輪胎出入庫表

after insert

asdeclare @tyre_epc varchar(50), @storage varchar(50), @symbol varchar(50);    

--在inserted

表中查詢已經插入記錄資訊    

select @tyre_epc = tyre_epc, @storage = storage, @symbol = symbol from inserted;

if ( @symbol='入庫')

begin  

insert into tyre_storage  values(@tyre_epc, @storage);    

endif(@symbol='出庫')

begin

if(exists (select tyre_epc from tyre_ storage  where tyre_epc=@tyre_epc))

begin

delete from tyre_ storage  where tyre_epc=@tyre_epc;

endend

print '出入庫成功!';

觸發器學習小結

與組合邏輯輸出僅取決於輸入不同,反饋線的引入使得即使沒有輸入,電路自身也能產生相應的輸出。動作特點,按觸發方式分為電平 脈衝 邊沿 功能描述,按邏輯功能分類 rs j k d t 考慮上述電路,在上電後,vin和vout的值會取決於最初狀態,為0或為1 不確定具體是0還是1,但肯定穩定在二者之一 之...

觸發器學習《一》 簡單觸發器建立

1 建立表 create table userinfo id number 10,0 primary key,name varchar2 40 2 建立序列 create sequence userinfo seq start with 1 maxvalue 9999999999 increment...

Mysql之觸發器小結

觸發器是自mysql5.0開始支援的一種過程式資料庫物件。具體而言,觸發器就是mysql響應insert update delete語句而自動執行的一條mysql語句 或位於begin和end語句之間的一組mysql語句 需要注意的是觸發器只對增 刪 改語句響應,其他mysql語句是不支援觸發器的。...