觸發(fā)器可以理解成一" />
更新時間:2021-06-21 14:20:32作者:admin2
存儲過程需要調(diào)用才執(zhí)行里面的sql語句。觸發(fā)器是設(shè)置好觸發(fā)條件,條件達到時自動運行里面的sql語句,比如對a表進行更新(update)操作時,相應(yīng)的觸發(fā)器就會運行。
觸發(fā)器可以理解成一種特定的存儲過程和一般的存儲過程相比,其調(diào)用時機不同,是在滿足特定的情況下被調(diào)用,比如表的數(shù)據(jù)被修改時(表級觸發(fā)器)或執(zhí)行一些DDL時(數(shù)據(jù)庫級觸發(fā)器)
create table A --商戶表( ID_a int identity(1,1), sales varchar(50))create table B --物品表( ID_b int identity(1,1), goods varchar(50),)create table C --關(guān)系表( ID_c int identity(1,1), ID_a int, ID_b int, price money)create table save_table --保存表( ID_save int identity(1,1), ID_b int, price_old money, price_new money, update_time datetime)--存儲過程檢索指定商品在不同商店的銷售價格和平均價格create proc findprice@goods varchar(50)as--不同商店銷售價格select A.sales,B.goods,C.price from C join B on C.ID_b=B.ID_b join A on A.ID_a=C.ID_a where B.goods=@goods--商品平均值select avg(C.price) from C join B on C.ID_b=B.ID_b join A on A.ID_a=C.ID_a where B.goods=@goodsgo--觸發(fā)器設(shè)計實現(xiàn),當修改商品價格時,將修改前的值、修改后的值和修改日期保存到一個表中供以后查詢create trigger findtriggeron Cfor updateasdeclare @price_old money,@price_new money,@ID_b intselect @ID_b=ID_b,@price_new=price from insertedselect @price_old=price from deletedinsert into save_table(ID_b,price_old,price_new,update_time)values(@ID_b,@price_old,@price_new,GETDATE())go
具體找例子啊。找相應(yīng)數(shù)據(jù)庫的存儲過程和觸發(fā)器的例子,再按你現(xiàn)在的要求寫唄。寫程序就是這樣,有思路,一定會寫出來的。