版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、SQLServer2000觸發(fā)器觸發(fā)器一、簡介一、簡介觸發(fā)器是一種特殊的存儲過程存儲過程,類似于其它編程語言中的事件函數(shù)事件函數(shù),SQLServe2000允許為、UPDATE、創(chuàng)建觸發(fā)器,當(dāng)在表(視圖)中插入、更新、刪除記錄時,觸發(fā)一個或一系列TSQL語句。兩大類:DML觸發(fā)器和DLL觸發(fā)器。1、優(yōu)缺點優(yōu)缺點觸發(fā)器的主要作用就是其能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性。除此之外,觸發(fā)器還有其它許多不同的功能:強化
2、約束(強化約束(Enfcerestriction)觸發(fā)器能夠?qū)崿F(xiàn)比CHECK語句更為復(fù)雜的約束。跟蹤變化跟蹤變化Auditingchanges觸發(fā)器可以偵測數(shù)據(jù)庫內(nèi)的操作,從而不允許數(shù)據(jù)庫中未經(jīng)許可的指定更新和變化。級聯(lián)運行(級聯(lián)運行(Cadedoperation)。觸發(fā)器可以偵測數(shù)據(jù)庫內(nèi)的操作,并自動地級聯(lián)影響整個數(shù)據(jù)庫的各項內(nèi)容。例如,某個表上的觸發(fā)器中包含有對另外一個表的數(shù)據(jù)操作(如刪除,更新,插入)而該操作又導(dǎo)致該表上觸發(fā)器被觸
3、發(fā)。存儲過程的調(diào)用(存儲過程的調(diào)用(Stedprocedureinvocation)。為了響應(yīng)數(shù)據(jù)庫更新觸,發(fā)器可以調(diào)用一個或多個存儲過程,甚至可以通過外部過程的調(diào)用而在DBMS(數(shù)據(jù)庫管理系統(tǒng))本身之外進(jìn)行操作。由此可見,觸發(fā)器可以解決高級形式的業(yè)務(wù)規(guī)則或復(fù)雜行為限制以及實現(xiàn)定制記錄等一些方面的問題。例如,觸發(fā)器能夠找出某一表在數(shù)據(jù)修改前后狀態(tài)發(fā)生的差異,并根據(jù)這種差異執(zhí)行一定的處理。此外一個表的同一類型(、UPDATE、)的多個觸發(fā)
4、器能夠?qū)ν环N數(shù)據(jù)操作采取多種不同的處理??傮w而言,觸發(fā)器性能通常比較低??傮w而言,觸發(fā)器性能通常比較低。當(dāng)運行觸發(fā)器時,系統(tǒng)處理的大部分時間花費在參照其它表的這一處理上,因為這些表既不在內(nèi)存中也不在數(shù)據(jù)庫設(shè)備上,而刪除表和插入表總是位于內(nèi)存中。可見觸發(fā)器所參照的其它表的位置決定了操作要花費的時間長短。2、注意事項、注意事項在視圖上創(chuàng)建普通觸發(fā)器可能會出現(xiàn)在視圖上創(chuàng)建普通觸發(fā)器可能會出現(xiàn)“對象無效對象無效”的錯誤,實際上,我們不能在的錯
5、誤,實際上,我們不能在視圖上創(chuàng)建視圖上創(chuàng)建F觸發(fā)器,而應(yīng)該創(chuàng)建觸發(fā)器,而應(yīng)該創(chuàng)建INSTEADOF觸發(fā)器觸發(fā)器。在SQLServer2000聯(lián)機叢書中,是沒有說觸發(fā)器不能在視圖上創(chuàng)建的,并且在語法解釋中表明:在CREATETRIGGER的ON之后可以是視圖。然而,事實似乎并不是如此,很多專家也說觸發(fā)器不能在視圖上創(chuàng)建。我也專門作了測試,的確如此,不管是普通視圖還是索引視普通視圖還是索引視圖,都無法在上面創(chuàng)建觸發(fā)器.但是無可厚非的是:當(dāng)在
6、臨時表或系統(tǒng)表上創(chuàng)建觸發(fā)器時當(dāng)在臨時表或系統(tǒng)表上創(chuàng)建觸發(fā)器時會遭到拒絕。會遭到拒絕。FCREATETRIGGER語句F關(guān)鍵字之后可以跟、UPDATE、中的一個或多個,也就是說在其它情況下是不會觸發(fā)觸發(fā)器的,包括、、WRITETEXT、UPDATETEXT。查看某個觸發(fā)器的內(nèi)容:方式一:方式一:execsp_helptext觸發(fā)器名稱觸發(fā)器名稱將會以表的樣式顯示觸發(fā)器內(nèi)容。除了觸發(fā)器外,sp_helptext還可以顯示規(guī)則、默顯示規(guī)則、默
7、認(rèn)值、未加密的存儲過程、用戶定義函數(shù)、視圖的文本認(rèn)值、未加密的存儲過程、用戶定義函數(shù)、視圖的文本.方式二:方式二:用企業(yè)管理器查看用企業(yè)管理器查看在表上點右鍵“所有任務(wù)”“管理觸發(fā)器”,選擇所要查看的觸發(fā)器查看當(dāng)前數(shù)據(jù)庫中有哪些觸發(fā)器方式三:方式三:在查詢分析器中運行:在查詢分析器中運行:fromsysobjectswherextype=TRsysobjects保存著數(shù)據(jù)庫的對象,其中xtype為TR的記錄即為觸發(fā)器對象。在name一列
8、,我們可以看到觸發(fā)器名稱。刪除觸發(fā)器方式一:方式一:用查詢分析器刪除用查詢分析器刪除:TRIGGER觸發(fā)器名稱觸發(fā)器名稱1觸發(fā)器名稱觸發(fā)器名稱2...注意1:觸發(fā)器名稱是不加引號的。注意2:在刪除觸發(fā)器之前可以先看一下觸發(fā)器是否存在:ifExists(namefromsysobjectswherename=觸發(fā)器名稱xtype=TR)方式二:方式二:用企業(yè)管理器刪除用企業(yè)管理器刪除在企業(yè)管理器中,在表上點右鍵“所有任務(wù)”“管理觸發(fā)器”,
9、選中所要刪除的觸發(fā)器,然后點擊“刪除”。重命名觸發(fā)器方式一:方式一:用查詢分析器重命名用查詢分析器重命名:execsp_rename原名稱原名稱新名稱新名稱sp_rename是SQLServer2000自帶的一個存儲過程,用于更改當(dāng)前數(shù)據(jù)庫中用戶創(chuàng)建的對象的名稱,如表名、列表、索引名等如表名、列表、索引名等。方式二:方式二:用企業(yè)管理器重命名用企業(yè)管理器重命名在表上點右鍵“所有任務(wù)”“管理觸發(fā)器”,選中所要重命名的觸發(fā)器,修改觸發(fā)器語句
10、中的觸發(fā)器名稱,點擊“確定”。查看觸發(fā)器的屬性存儲過程sp_helptrigger用于查看觸發(fā)器的屬性。sp_helptrigger有兩個參數(shù):第一個參數(shù)為表名;第二個為觸發(fā)器類型,為(6)類型,可以是、UPDATE、,如果省略則顯示指定表中所有類型觸發(fā)器的屬性。execsp_helptriggertable_name三、觸發(fā)器更多語法三、觸發(fā)器更多語法INSTEADOF類型觸發(fā)器類型觸發(fā)器執(zhí)行觸發(fā)器語句,但不執(zhí)行觸發(fā)觸發(fā)器的SQL語句
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- sql server 2000中的觸發(fā)器使用(good)文庫
- sql server2008觸發(fā)器學(xué)習(xí)筆記
- sql server 2005 學(xué)習(xí)筆記之觸發(fā)器簡介
- sql server2008觸發(fā)器練習(xí)題
- sql server觸發(fā)器存入遠(yuǎn)程數(shù)據(jù)庫
- sql觸發(fā)器實例
- sql server存儲過程和觸發(fā)器操作實訓(xùn)講義
- sql server數(shù)據(jù)庫觸發(fā)器實例講解文章出處
- sql中如何創(chuàng)建觸發(fā)器
- sql觸發(fā)器的使用及語法
- 通過觸發(fā)器跟蹤對表的修改sql語句
- sql觸發(fā)器全過程(含實例講解)
- 主從rs觸發(fā)器,jk觸發(fā)器
- 基本rs觸發(fā)器和d觸發(fā)器
- d觸發(fā)器&雙d觸發(fā)器
- 實驗六 rs觸發(fā)器和d觸發(fā)器
- 觸發(fā)器語句
- 觸發(fā)器總結(jié)
- ppt觸發(fā)器
- sql 2005 的存儲過程和觸發(fā)器調(diào)試大法(原創(chuàng))
評論
0/150
提交評論