觸發器可以理解成一" />
更新時間:2021-06-21 14:20:32作者:admin2
存儲過程需要調用才執行里面的sql語句。觸發器是設置好觸發條件,條件達到時自動運行里面的sql語句,比如對a表進行更新(update)操作時,相應的觸發器就會運行。
觸發器可以理解成一種特定的存儲過程和一般的存儲過程相比,其調用時機不同,是在滿足特定的情況下被調用,比如表的數據被修改時(表級觸發器)或執行一些DDL時(數據庫級觸發器)
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 --關系表( 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--觸發器設計實現,當修改商品價格時,將修改前的值、修改后的值和修改日期保存到一個表中供以后查詢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
具體找例子啊。找相應數據庫的存儲過程和觸發器的例子,再按你現在的要求寫唄。寫程序就是這樣,有思路,一定會寫出來的。