首先介紹觸發器的兩個最重要的基礎知識:
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語句是不支援觸發器的。...