2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1觸發(fā)器觸發(fā)器1、觸發(fā)器觸發(fā)器概述概述觸發(fā)器是一種特殊類型的存儲過程,不由用戶直接調(diào)用。創(chuàng)建觸發(fā)器時會對其進行定義,以便在對特定表或列作特定類型的數(shù)據(jù)修改時執(zhí)行。CREATEPROCEDURE或CREATETRIGGER語句不能跨越批處理。即存儲過程或觸發(fā)器始終只能在一個批處理中創(chuàng)建并編譯到一個執(zhí)行計劃中。用觸發(fā)器還可以強制執(zhí)行業(yè)務規(guī)則。MicrosoftSQLServer提供了兩種主要機制來強制業(yè)務規(guī)則和數(shù)據(jù)完整性:約束和觸發(fā)器。觸發(fā)

2、器是一種特殊類型的存儲過程,它在指定的表中的數(shù)據(jù)發(fā)生變化時自動生效。喚醒調(diào)用觸發(fā)器以響應、UPDATE或語句。觸發(fā)器可以查詢其它表,并可以包含復雜的TransactSQL語句。將觸發(fā)器和觸發(fā)它的語句作為可在觸發(fā)器內(nèi)回滾的單個事務對待。如果檢測到嚴重錯誤(例如,磁盤空間不足),則整個事務即自動回滾。二、觸發(fā)器的優(yōu)點二、觸發(fā)器的優(yōu)點觸發(fā)器可通過數(shù)據(jù)庫中的相關表實現(xiàn)級聯(lián)更改;不過,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改觸發(fā)器可以強制比

3、用CHECK約束定義的約束更為復雜的約束。與CHECK約束不同的是,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個表中的比較插入或更新的數(shù)據(jù),以及執(zhí)行其它操作,如修改數(shù)據(jù)或顯示用戶定義錯誤信息。觸發(fā)器也可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策。一個表中的多個同類觸發(fā)器(、UPDATE或)允許采取多個不同的對策以響應同一個修改語句。觸發(fā)器是自動的:它們在對表的數(shù)據(jù)作了任何修改(比如手工輸入或者應用程序采取的操作)之后立即

4、被激活。觸發(fā)器可以通過數(shù)據(jù)庫中的相關表進行層疊更改。例如,可以在titles表的title_id列上寫入一個刪除觸發(fā)器,以使其它表中的各匹配行采取刪除操作。該觸發(fā)器用title_id列作為唯一鍵,在titleauth、sales及roysched表中對各匹配行進行定位。三、比較觸發(fā)器與約束三、比較觸發(fā)器與約束約束和觸發(fā)器在特殊情況下各有優(yōu)勢。觸發(fā)器的主要好處在于它們可以包含使用TransactSQL代碼的復雜處理邏輯。因此,觸發(fā)器可以支

5、持約束的所有功能;但它在所給出的功能上并不總是最好的方法。實體完整性總應在最低級別上通過索引進行強制,這些索引或是PRIMARYKEY和UNIQUE約束的一部分,或是在約束之外獨立創(chuàng)建的。假設功能可以滿足應用程序的功能需求,域完整性應通過CHECK約束進行強制,而引用完整性(RI)則應通過FEIGNKEY約束進行強制。在約束所支持的功能無法滿足應用程序的功能要求時,觸發(fā)器就極為有用。例如:除非REFERENCES子句定義了級聯(lián)引用操作,

6、否則FEIGNKEY約束只能以與另一列中的值完全匹配的值來驗證列值。3用企業(yè)管理器刪除在企業(yè)管理器中,在表上點右鍵“所有任務”“管理觸發(fā)器”,選中所要刪除的觸發(fā)器,然后點擊“刪除”。六、重命名觸發(fā)器六、重命名觸發(fā)器用查詢分析器重命名execsp_rename原名稱原名稱新名稱新名稱sp_rename是SQLServer?自帶的一個存儲過程,用于更改當前數(shù)據(jù)庫中用戶創(chuàng)建的對象的名稱,如表名、列表、索引名等。用企業(yè)管理器重命名在表上點右鍵“

7、所有任務”“管理觸發(fā)器”,選中所要重命名的觸發(fā)器,修改觸發(fā)器語句中的觸發(fā)器名稱,點擊“確定”。四、四、me....INSTEADOF執(zhí)行觸發(fā)器語句,但不執(zhí)行觸發(fā)觸發(fā)器的SQL語句,比如試圖刪除一條記錄時,將執(zhí)行觸發(fā)器指定的語句,此時不再執(zhí)行語句。例:createtriggerfontblinsteadofasintoLogs...IFUPDATE(列名列名)檢查是否更新了某一列,用于或update,不能用于。例:createtrigge

8、rfontblfupdateasifupdate(status)update(title)sql_statement更新了status或title列ed、d這是兩個虛擬表,ed保存的是或update之后所影響的記錄形成的表,d保存的是或update之前所影響的記錄形成的表。例:createtriggertbl_ontblfasdeclare@titlevar(200)@title=titlefromdintoLogs(logConten

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論