最近了解到了觸發器,現在我的理解是更喜歡把觸發器當成特殊的存儲過程(觸發器:通過對這個表的操作為依據處罰之后可以對另外的表進行一系列操作),那么此刻我就將觸發器如何經營離婚事務所的過程和大家分享:
**一、經營漏洞(觸發器的缺點):**
當一對夫婦有了閃離的念頭,沖動之余就拿著結婚證來找觸發器(離婚事務所)了;此時觸發器是不會在乎你倆是否真的認定了要離婚(是否應不應該觸發這個事件),只要你將結婚證給了他并大概說一些理由,他就會給你們辦理離婚手續(執行符合條件之后要處罰的過程),大家都知道,離婚手續一旦辦理了,那么倆人的婚姻也就不再收到法律的保護(觸發器一旦處罰了事件那么就會對表進行對應的操作),這將是很危險的(現實中的離婚事務所不是這樣的這里僅供理解觸發器)。
所以一定要再去離婚事務所的時候想清楚了(慎用觸發器);如果你沒有任何思考而是一時的沖動貿然去離婚事務所辦理了離婚手續,必然會后悔終身(對于觸發器的過分依賴,勢必影響數據庫的結構,同時增加了維護的復雜程度)。
**二、經營好處(觸發器優點):**
當人們到離婚事務所辦理了離婚手續之后,再和別的人結婚之后再次的婚姻就會收到法律的保護(觸發器通過級聯引用完整性約束更好的執行更改);同時也是兩個人不在一起的見證,對于自己以后的規劃更加著重(觸發器可以評估數據修改前后的表狀態,并根據其差異采取對策)。
**三、經營范例(觸發器示例):**
以下是我在機房重構充值這條線中寫的觸發器:有了它之后,我在編寫代碼的時候,直接將ReCharge_Info表中插入(下面的業務功能:insert)一條數據,不用再去返回之后再執行更新卡表了,這里直接就給我更新(下面的更新卡表:Update)了!
~~~
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">-- =============================================
-- Author: <馬康>
-- Create date: <2015-5-1>
-- Description: <充值觸發器>
-- =============================================
create TRIGGER [dbo].[AddSum] --創建一個名叫AddSum的觸發器
ON [dbo].[ReCharge_Info] --觸發器的事件發生在Recharge_Info表上
for insert --業務功能是添加新數據
as
begin
declare @CardID char(10) --聲明了兩個變量:CardID、AddCash
declare @AddCash int
select @CardID=CardID,@AddCash=convert(int,AddCash) from inserted --將充值表中的CardID和AddCash強制轉換類型后賦值給@CardID和@AddCash
Update Card_Info set Cash =convert(int,Cash)+@AddCash where @CardID=CardID --在卡表里更新余額
end</span></span>
~~~
**四、經營收獲(運用觸發器的收獲):**
這里需要注意的是更新卡表中的AddCash字段的時候需要看清楚是什么類型;觸發器在觸發前的表中建立,建立的時候用:Create,如果要是修改觸發器應該用:Alter。
通過不斷的學習總結才能在以后的路上走的更加的堅實,加油!
本文如有錯誤之處還望指正!