T SQL語句建立觸發器

2021-08-23 15:01:25 字數 2249 閱讀 6815

create trigger 觸發器名

on 表或檢視

for|after|instead of --操作時機

insert,update,delete

assql語句

例1:要求:在order_test表建立insert觸發器,當向order_test表插入一行,如果cust_test表中對應

記錄status值為1,說明處於準備狀態不能寫入該資料

create trigger cust_orders_ins2

on order_test

after insert

asif (select cstatus from cust_test,inserted where

cust_test.customerid=inserted.customerid)=1

begin

print 'the goods is being processed'

rollback transaction

endgo

例2:在order_test表上建立乙個插入觸發器,在新增乙個訂單時,減少cust_test表的相應貨物的記錄的庫存量。

create trigger cust_orders_ins3

on order_test

after insert

as update cust_test set cstorage=cstorage-inserted.orders

from cust_test,inserted

where cust_test.customerid=inserted.customerid

例3:在order_test表上建立乙個插入觸發器,規定訂單日期(odate)不能手工修改。

create trigger orderdateupdate

on order_test

after update

asif update (odate)

begin

raiserror('error',10,1)

rollback transaction

end例4:

要求訂購的物品一定要在倉庫中有的,並且數量足夠。

create trigger order_insert5

on order_test

after insert

asbegin

if(select count(*)

from cust_test,inserted

where cust_test.customerid=inserted.customerid)=0

begin

print 'no entry in goods for your order'

rollback transaction

endif(select cust_test.cstorage from cust_test,inserted

where cust_test.customerid=inserted.customerid)<

(select inserted.orders from cust_test,inserted

where cust_test.customerid=inserted.customerid)

begin

print 'no enough entry in goods for your order'

rollback transaction

end例6:

在order_test表上建立乙個插入觸發器,同時插入多行資料時,要求訂購的物品一定要在倉庫中有的

create trigger order_insert6

on order_test

after insert

asif

(select count(*) from cust_test,inserted

where cust_test.customerid=inserted.customerid)<>@@rowcount

--可以在觸發器邏輯中使用 @@rowcount 函式以區分單行插入和多行插入。

begin

delete order_test from order_test,inserted

where order_test.orderid=inserted.orderid and

inserted.customerid not in (select customerid from cust_test)

endprint @@rowcount

T SQL 語句(六) 觸發器操作

一 觸發器簡介 1 觸發器的功能 a 實現比約束更為複雜的資料約束 b 可以檢查 sql 所做的操作是否被允許 c 修改其他資料庫裡表的資料 d 可以一次呼叫多個儲存過程 e 傳送sql mail f 返回自定義錯誤資訊 g 修改原來要操作的 sql 語句 h 防止資料表結構更改或表被刪除 2 觸發...

T SQL語句建立儲存過程和觸發器練習

源網頁 實驗過程 一 在student資料庫上練習建立並呼叫課堂講授的儲存過程和觸發器。1.建立乙個instead of觸發器,要求實現一下功能 在t student表上建立乙個刪除型別的觸發器notallowdelete,當上除記錄時,顯示不允許刪除的提示資訊 use students go if...

理解T SQL 觸發器

觸發器是一種響應特定事件的特殊型別的儲存過程。有兩種型別的觸發器 資料定義語言 ddl 和資料操作語言 dml 觸發器。ddl能夠響應某種方式 create,alter,drop 修改資料庫結構時激發 dml是附加在特定表和檢視上的 程式不能顯式呼叫觸發器,觸發器 是某種事件產生後被自動執行。ddl...