国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
SQL觸發(fā)器原理介紹
SQL觸發(fā)器原理介紹
2009-04-06 10:54
先說觸發(fā)器,再說好處和壞處
-------------------------------
觸發(fā)器,主要是用來同步更新數(shù)據(jù)的,雜亂枯燥的文章不給你轉(zhuǎn)了,看起來累,舉個例子吧:

假設(shè)有兩個表,tab_1 , tab_2
再假設(shè)兩個表里都有“人員性別”這個字段

tab_1的數(shù)據(jù)例如: 張三```男```1978`````2002
tab_2的數(shù)據(jù)例如: 張三```男```銷售科```科長

我要改tab_1中張三的性別為“女”的話,那么tab_2的性別也該改為“女”,對吧,總不能兩張表的性別不同吧。

如果不用觸發(fā)器的話,我們就要改完tab_1,再去改tab_2,使性別都變成女

于是這里可以用到觸發(fā)器了:

原理是:當tab_1中某人的性別發(fā)生變更后,數(shù)據(jù)庫自動將tab_2的性別進行同步修改

觸發(fā)器也可以這樣應用:
1、當刪除tab_1中的某人信息時,觸發(fā)器一并刪除該人的tab_2中的數(shù)據(jù)
2、在tab_1中新插入一個人員時,觸發(fā)器在tab_2中一并新增一條該人的數(shù)據(jù)

===================================================================================
所以在你建立觸發(fā)器時,就要指定該觸發(fā)器的用途,是同步更新,還是刪除、插入,由你指定。

基本的語法規(guī)則是:
create trigger 觸發(fā)器名稱(你自己命名的) on 表 for 用途(delete|update|insert)
as
delete|update|insert語句
----------------------------------------------------------------------
例如:
create trigger tri_A on tab_1 FOR DELETE
AS
delete tab_2 from deleted where tab_2.id = deleted.id;

意思是:在tab_1表上,建立觸發(fā)器(tri_A),用于刪除該表的數(shù)據(jù)時觸發(fā)一個事務,什么事務呢?——刪除tab_2中的該編號人員的記錄。

FOR INSERT、FOR UPDATE分別是建立用于“插入記錄”、“更新數(shù)據(jù)”的觸發(fā)器,例子里的FOR DELETE是用于觸發(fā)“刪除記錄”的。

這里還要看清楚,那個delete語句中的表,是from deleted哦,還有,where子句的tab_2.id = deleted.id,不是tab_2.id = tab_1.id哦,deleted.id是指你剛刪除的那條記錄的id(而update、insert,都用inserted.id)
===================================================================================

好處:相對于外部程序、存儲過程,觸發(fā)器可以更快更高效的維護數(shù)據(jù)
壞處:(我自己的經(jīng)驗)觸發(fā)器要用的恰到好處,一個大型應用里,觸發(fā)器越少越好,觸發(fā)器會使編程時源碼的結(jié)構(gòu)被迫打亂,為將來的程序修改、源碼閱讀帶來很大不便。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SYBASE觸發(fā)器及應用
SQL 2000中的觸發(fā)器使用
sqlserver2000觸發(fā)器開發(fā)文檔_數(shù)據(jù)庫_ASP編程網(wǎng)
SQL Server 觸發(fā)器
SQL觸發(fā)器語法
簡單觸發(fā)器的使用—獻給SQL初學者
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服