




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據庫中的游標、存儲過程和觸發器原文:SQL-SERVER是一種關系型數據庫管理系統,能夠與WINDOWS平臺緊密集成,以一種簡單的方式來完成各種復雜的任務。SQL-SERVER管理大量數據,允許大量用戶進行并發訪問,維護數據的完整性和安全性。本文正是從游標、存儲過程、觸發器三個方面論述SQL-SERVER高效處理數據的方法。1 SQL-SERVER數據庫簡介SQL-SERVER是一個功能完備而強大的數據庫管理系統。在SQL-SERVER中,數據和程序被劃分為不同的邏輯組件,稱為數據庫對象,通過訪問和管理數據庫對象來訪問和管理SQL-SERVER中的信息。表是SQL-SERVER中的最重要的數
2、據庫對象。數據庫被存儲在一個或者多個數據庫文件中。關系數據庫系統是讓用戶用語句來獲得和修改與實體相關的信息。所有的主流數據庫都支持用標準的SQL語言來作業。2 SQL-SERVER數據庫中的游標、存儲過程、觸發器2.1 游標的作用、功能及其優點SQL-SERVER中的“游標”是一種數據庫對象,應用程序用它來對結果集實行“行集”操作。SQL-SERVER支持CLIENT游標、API SERVER游標和T-SQL游標。T-SQL游標和其它種類的游標區別是:T-SQL游標在存儲過程、批處理、函數、或觸發器中使用,用于重復對光標每一行的定制的處理。其它種類的游標被設計用于從客戶應用程序中訪問數據庫信息
3、。本文以T-SQL游標為例。下面,聲明一個FORWARD_ONLY游標,該游標允許對其數據進行修改。在查詢分析器中執行下列語句:DECLARE JobsCursor CURSOR FORWARD_ONLY FORSELECT * FROM jobs WHERE min_lvl=75 FOR UPDATEOPEN JobsCursorFET CH JobsCursorUPDATE jobsSET max_lvl=100 WHERE CURRENT OF JobsCursorSELECT * FROM jobs WHERE min_lvl=75CLOSE JobsCursorDEALLOCATE
4、JobsCursor游標的優點:游標的這種行集設計方法是處理數據的一個強有力的工具。2.2 存儲過程的作用、功能及其優點SQL-SERVER中的“存儲過程”是一組預編譯的SQL語句。T-SQL語句是充當SQL-SERVER數據庫和用戶應用程序間的編程接口。存儲和執行T-SQL程序的方法有兩種,一種是本地存儲程序,另一種是將程序存儲為SQL-SERVER中的“存儲過程”,然后創建應用程序執行存儲過程。通過編寫存儲過程來運行經常執行的管理任務,或者應用復雜的業務規則。SQL-SERVER中的存儲過程分為“系統存儲過程”和“用戶定義的存儲過程”。系統存儲過程用以管理SQL-SERVER和顯示有關數據
5、庫和用戶的信息,系統存儲過程充當從系統表中檢索信息的快捷方式,如:sp-stored-procedures列出當前環境中的所有存儲過程。SQL-SERVER存儲過程具有以下幾點功能:a. 通過輸入,輸出參數與調用程序通訊;b. 返回一個稱為返回代碼的整型值,以表明過程的執行狀態;c. 具有方便的重新編譯其過程的方法,用EXECUTE與WITH RECOMPILE 子句;下面,聲明一個簡單的存儲過程。在查詢分析器中執行下列語句:create procedure ssintvalue1 int,intvalue2 int,inttotal int outputas select inttotal=
6、intvalue1+intvalue2godeclare inttotal intexec ss 15,9, inttotal outputprint the total of 15 and 9 is+convert(char(8, inttotal執行結果為:the total of 15 and 9 is 25存儲過程具有以下優點:a. 允許模塊化程序設計。b. 只需創建過程一次并將其存儲在數據庫中,以后即可在程序中調用該過程任意次。存儲過程可獨立于程序源代碼而單獨修改。c. 運行速度快。存儲過程將比T-SQL批代碼的執行要快。存儲過程是被編譯后存放在數據庫服務器的過程高速緩存中,當使用時
7、,服務器不必再重新分析和編譯它們。d. 減少網絡流量。在網絡中要發送的數百行代碼,可由一條執行其過程代碼的一條單獨語句就可實現。e. 有安全機制。可授予沒有直接執行存儲過程中語句的權限的用戶,也可執行該存儲過程的權限。另外可以防止用戶直接訪問表,強制用戶使用存儲過程執行特定的任務。2.3 觸發器的作用、功能及其優點SQL-SERVER中的“觸發器”是一種強制業務規則和數據完整性的一種類型機制,它是一種特殊類型的存儲過程。SQL-SERVER有兩種類型的觸發器:“AFTER 觸發器”和“INSTEAD OF觸發器”。觸發器具有以下幾點功能:a. 以“偵測”數據庫內的操作,確保輸入表中的數據的有效
8、性;b. 實現“層疊刪除”,如在表INVENTORY和INVENTORY PROPERTY之間不存在外鍵,但用一個觸發器可以監視INVENTORY表中記錄的刪除情況,及另一個表與之有關聯的記錄;c. 訪問“INSERTED表”和”DELETED表中的內容。如對更新類型觸發器的表來講,將在“刪除表”中存放舊值,而在“插入表”中存放新值。刪除表和插入表是每個觸發器都有的兩個特殊的虛擬表,這兩個表是邏輯表,并動態存貯在內存中;下面,將創建一個UPDATE觸發器,以確保PRODUCTS表中現有的UnitsOnOrder和ReorderLevel列不會被修改為小于10的值。每次執行此操作時,都執行該觸發
9、器。以下是在查詢分析器中實現的T-SQL塊:CREATE TRIGGER CheckProductUpdateON Products For UPDATE ASIF(SELECT UnitsOnOrder FROM INSERTED<10OR(SELECT ReorderLevel FROM INSERTED<10BEGINPRINT 錯誤,不能小于10!ROLLBACK TRANSACTIONEND執行下面的語句:UPDATE Products SET UnitsOnOrder=5 WHERE ProductID=5執行結果為:錯誤,不能小于10!保證了UnitsOnOrder和
10、ReorderLevel列不會被修改為小于10的值。d. “INSEAD OF觸發器”提供了基于聯接條件的視圖所“不支持”的數據刪除操作。INSTEAD OF觸發器可以基于一個數據修改操作。這是SQL-SERVER觸發器的另一個重要功能之一;下面創建一個基于employee表和publisher表的視圖,要使對此視圖進行更新,必須通過INSTEAD OF觸發器來刪除數據。以下是在查詢分析器中的T-SQL塊:CREATE VIEW Emp_pub AsSELECT emp_id,lname,job_id,pub_nameFROM employee e,publishers p WHERE e.p
11、ub_id=p.pub_idCREATE TRIGGER del_emp ON Emp_pubINSERTED OF DELETE ASDELETE employee WHERE emp_id IN (SELECT emp_id FROM DELETED執行下面的語句,刪除數據。DELETE Emp_pub WHERE emp_id=POK93028Me. 觸發器與存儲過程類似,亦可進行加密處理。以保證代碼的安全。觸發器的優缺點:觸發器常用于強制業務規則和數據完整性的強大工具。據資料分析,提倡簡化使用觸發器,沒有必要使代碼太復雜而讓人費解。也不要太多使用觸發器,因為觸發器的執行,高度和管理很復
12、雜。3 游標、存儲過程、觸發器三者的聯系SQL-SERVER數據庫中的游標、存儲過程、觸發器三者從不同方面提高了數據處理能力。參見下面的圖1.觸發器是一種特殊類型的存儲過程,它主要是通過事件進行觸發而被執行的,而存儲過程是通過存儲過程的名字而被直接調用;游標可提供腳本,存儲過程和觸發器中使用的訪問結果集中的數據的T-SQL語句。圖1 高效處理數據圖4 結論SQL-SERVER是一個關系數據庫,用于各種企業組織及專業數據庫和應用開發環境中。能迅速地設計和開發客戶/服務器。游標的行集操作設計方法是一個強有力的工具,要合理使用游標。游標主要用于實現一些不能使用面向集合的語句實現的操作。T-SQL的存儲過程的功能強大,甚至可以實現最復雜的商業事務,存儲過程結合了過程和非過程兩種方法。具有通訊、模塊設計、執行快等優點。“觸發器”是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國傳媒大學《影視人物服裝設計實訓》2023-2024學年第二學期期末試卷
- 公司帶隊活動方案
- 公司年會六個人活動方案
- 公司年會小型活動方案
- 公司年會棗糕活動方案
- 公司年會舞獅策劃方案
- 公司年尾團建活動方案
- 公司年度人文活動方案
- 公司年度述職策劃方案
- 公司年終零食活動方案
- 2025年河北省中考麒麟卷生物(二)
- 中脈道和系統文化課件
- 四級閱讀測試題及答案
- 品檢員考試題庫及答案
- T/CIE 208-2024兒童機器人教育評價指南
- 數字金融促進區域經濟高質量發展的機制與路徑研究
- 2025年高考英語課后續寫高頻考點話題分類第07講 讀后續寫之成長類主題(講義)
- 【MOOC】電工學-西北工業大學 中國大學慕課MOOC答案
- 四川省成都市2024年七年級下學期期末數學試題附答案
- 尿動力學檢查操作指南2023版
- 案例同仁堂的新生
評論
0/150
提交評論