


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、技術知識點之二十系統(tǒng)存儲過程就是系統(tǒng)創(chuàng)建的存儲過程,目的在于能夠方便地從系統(tǒng) 表中查詢信息或完成與更新數據庫表相關的管理任務或其它的系統(tǒng) 管理任務。系統(tǒng)過程以“為開頭,在 數據庫中創(chuàng)建并保存在該數據庫中,為數據庫管理者所有。一些系統(tǒng)過程只能由系統(tǒng)管理員使用, 而有些系統(tǒng)過程通過授權可以被其它用戶所使用。系統(tǒng)存儲過程主要包括以下幾類:(這里主要給出每類系統(tǒng)過程中經 常使用的系統(tǒng)過程)5p_c 0 li imn_privi1e2£-> sp_01iimn5 sp_daiaba<essp_Serer_info 1*1*存儲過程sp_sp fcia I_co1nnin5 p_sp
2、TOC_c o lumns sp_statistics sp_ tore d_proe edure s gp.口bt 亡ki kges sp_iable、paddcli stpub li mher spsdddisnibutor 、p-htlp_d gtiirjTofik sp _he lp_pub lie a (lcmac cessip_heLpanicle、pddpvUbub script ion a ge n t p .adds>iibs cup Pionip_addart icleipalddiutioiKlbp_a dclp nb li canonsp a cldp lib l
3、i c ati u_napshot sp_atl(Lpu.blishef70 p_a clclpnl 侶 ub'cnp ti onp helpdis rp ubli slier sp_ i dd ubcrib e isp_lielpdisif ibutioadb sp_t>elpdi$tributor sp helpp ull s ub script ten sp_he lijreplic a ri ondbopti on sp_be lpsub scnp non sp_cha n g edis (rib u( o “鶻 oxd iprefreshsub crtptions 化
4、dropdi itpubhsh e i 5p_dropis-tnbutor $p_droppu 1 hi ib$ ert p no n 愛全管理類存?zhèn)蜻^程、p_addsiub s ctiVer_ s the dule sp _liclt>publication scribers-p _c h an eecli stpubli shef5 p_cliange d istribiit londb$ p_liiJi_publicat lo n sp_dropia.rticLeb pdropdi Fnb u?i ordL $p_<koppub-licat;cjispaddalias sp_
5、a detap prole ip_3ddgroupsp_a Minke dsn-! ogi n sp_ add. Io gin ip_3tldi«uioielogL.sp_aldrolesp_addServerp_a dclsTVTO lemci nber$p_(kopfole*p dropr o lerwember s.p_dropSener$p_ drop fYioleiiK niber p_dropuser fi-p-graitilbacce$p_gran(loiiisp helpd.bfi.xe<lroles.p_ln*lps;roup$p _heLp li tik e
6、drv loginsp_sddui5p_iippro lepa 舒門 ord sp_change_user5_lo g in spe hangedbown « s-p_chsng;egroup chaug:e obje ciowner sp_helpsrTole sp_helpsnToleme mber $p_defau rhn.su a ac 科j_den 列 ©gm ”P-drp白li住弓s.pspbclpotgroupsp r h邊p rtmoTelo eui iphdproLe ip_helprcleniembeT s p_ db fiziediol eperun
7、sloii sp_<lefaul(db sp _ dropr emote 1 ogin sp_lielpuser >p_piissword p_reiiiotetpTionsp drop group sp_di:0p linkedsnrlo gin. 分布式妥詢存儲辻程sp revokeloginsp_di oplogincldL itikedS e sp 3 ddl inkedsr/102 msp_ibreignkeysspiiidexes fsp 1 mke d Senders sp_pnmnryrkeyt.征以石的章節(jié)中,我們會便用或講解詁此存笳I仏在上面幾節(jié)我們介紹了一般意
8、義的存儲過程, 即用戶自定義的存儲過 程和系統(tǒng)存儲過程。本節(jié)將介紹一種特殊的存儲過程,即觸發(fā)器。在 余下各節(jié)中我們將對觸發(fā)器的概念、作用以及對其的使用方法作詳盡 介紹,使讀者了解如何定義觸發(fā)器,創(chuàng)建和使用各種不同復雜程度的 觸發(fā)器。觸發(fā)器的概念及作用觸發(fā)器是一種特殊類型的存儲過程,它不同于我們前面介紹過的 存儲過程。觸發(fā)器主要是通過事件進行觸發(fā)而被執(zhí)行的, 而存儲過程 可以通過存儲過程名字而被直接調用。當對某一表進行諸如、這些操作時,就會自動執(zhí)行觸發(fā)器所定義的 語句,從而確保對數據的處理必須符合由這些 語句所定義的規(guī)則。觸發(fā)器的主要作用就是其能夠實現(xiàn)由主鍵和外鍵所不能保證的復 雜的參照完整性和
9、數據的一致性。除此之外,觸發(fā)器還有其它許多不 同的功能:(1)強化約束()觸發(fā)器能夠實現(xiàn)比 語句更為復雜的約束。(2)跟蹤變化觸發(fā)器可以偵測數據庫內的操作,從而不允許數據庫中未經許可的指 定更新和變化。(3)級聯(lián)運行()。觸發(fā)器可以偵測數據庫內的操作,并自動地級聯(lián)影響整個數據庫的各 項內容。例如,某個表上的觸發(fā)器中包含有對另外一個表的數據操作(如刪除,更新,插入)而該操作又導致該表上觸發(fā)器被觸發(fā)。(4) 存儲過程的調用()。為了響應數據庫更新觸,發(fā)器可以調用一個或多個存儲過程, 甚至可 以通過外部過程的調用而在(數據庫管理系統(tǒng))本身之外進行操作。由此可見,觸發(fā)器可以解決高級形式的業(yè)務規(guī)則或復雜
10、行為限制 以及實現(xiàn)定制記錄等一些方面的問題。 例如,觸發(fā)器能夠找出某一表 在數據修改前后狀態(tài)發(fā)生的差異,并根據這種差異執(zhí)行一定的處理。 此外一個表的同一類型(、)的多個觸發(fā)器能夠對同一種數據操 作采取多種不同的處理。總體而言,觸發(fā)器性能通常比較低。當運行觸發(fā)器時,系統(tǒng)處理 的大部分時間花費在參照其它表的這一處理上,因為這些表既不在內存中也不在數據庫設備上,而刪除表和插入表總是位于內存中。 可見 觸發(fā)器所參照的其它表的位置決定了操作要花費的時間長短。觸發(fā)器的種類2000支持兩種類型的觸發(fā)器:觸發(fā)器和 觸發(fā)器。其中 觸發(fā)器即為 2000版本以前所介紹的觸發(fā)器。該類型觸發(fā)器要求只有 執(zhí)行某一操作()
11、之后,觸發(fā)器才被觸發(fā),且只能在表上定義。 可以為針對表的同一操作定義多個觸發(fā)器。對于觸發(fā)器,可以定義哪一個觸發(fā)器被最先觸發(fā),哪一個被最后觸發(fā),通常使用系統(tǒng)過程 來完成此任務。觸發(fā)器表示并不執(zhí)行其所定義的操作(、 、),而僅是執(zhí)行觸 發(fā)器本身。既可在表上定義 觸發(fā)器,也可以在視圖上定義 觸發(fā)器, 但對同一操作只能定義一個 觸發(fā)器。上面介紹了有關觸發(fā)器的概念、 作用和一些基本問題,下面我們將分 別介紹在 中如何用 管理工具 和來創(chuàng)建觸發(fā)器。在創(chuàng)建觸發(fā)器以前必須考慮到以下幾個方面:? 語句必須是批處理的第一個語句;?表的所有者具有創(chuàng)建觸發(fā)器的缺省權限,表的所有者不能把該權限傳給其它用戶;?觸發(fā)器是數
12、據庫對象,所以其命名必須符合命名規(guī)則;?盡管在觸發(fā)器的 語句中可以參照其它數據庫中的對象,但是,觸發(fā)器只能創(chuàng)建在當前數據庫中;?雖然觸發(fā)器可以參照視圖或臨時表,但不能在視圖或臨時表上創(chuàng)建觸發(fā)器,而只能在基表或在創(chuàng)建視圖的表上創(chuàng)建觸發(fā)器;? 一個觸發(fā)器只能對應一個表,這是由觸發(fā)器的機制決定的;? 盡管 語句如同沒有 從句的 語句,但是由于 語句沒有被記入 日志,所以該語句不能觸發(fā) 型觸發(fā)器;? 語句不能觸發(fā) 或 型的觸發(fā)器。當創(chuàng)建一個觸發(fā)器時, 必須指定觸發(fā)器的名字, 在哪一個表上定義觸 發(fā)器,激活觸發(fā) 器的修改語句,如、 、 。 當然兩個或三個不同的 修改語句也可 以都觸發(fā)同一個觸發(fā)器,如 和
13、 語句都能激活同一個 觸發(fā)器。12.6.1 用管理工具 創(chuàng)建觸發(fā)器其操作步驟如下:1. 啟動 , 登錄到指定的服務器上。2. 展開數據庫,然后展開要在其上創(chuàng)建觸發(fā)器的表所在的數據庫, 然后單擊該表。3. 右擊鼠標,在彈出菜單中選擇,然后單擊 。4. 在名字框中選擇, 在文本框中輸入觸發(fā)器文本,如圖 12-5 所 示。5. 單擊 檢查語句是否正確。6. 單擊, 在 下拉列表中會有新創(chuàng)建的觸發(fā)器名字。7. 單擊,關閉窗口創(chuàng)建成功1262用命令創(chuàng)建觸發(fā)器其語法覘則如卜CREATE TRIGGER n'iggfriiAmeON table | view HHTH EC R'ITIIO
14、TOR | AFTEK IX5TE AD OF DELETE J f INSERT UPDATE | VmH APPENDNOT FOR REPLICATION ASu < TORI AFTER INSTE.W OF > INSERT J VPDATE WITHAPPEXDNOT TOR REPLICATION |ASIF UPDATE ( cahimn )(AND | OR LPBATE ( column > »】| IF ( COLUMNS_LPDAIED <) bind 評 _叩飼玳 x updated_bitinas.k ) r oinp a i i5
15、on_o per a f oij coliiinu biTmask ri 1sql_£tatem»nl 町各參數的說明如下:?是用戶要創(chuàng)建的觸發(fā)器的名字觸發(fā)器的名字,必須符合的命名規(guī)則,且其名字在當前數據庫中必須是惟一的。?是與用戶創(chuàng)建的觸發(fā)器相關聯(lián)的表的名字, 并且該表已經存在。?表示對包含有文本的表進行加密。?表示只有在執(zhí)行了指定的操作(、)之后觸發(fā)器才被激活, 執(zhí)行觸發(fā)器中的語句。若使用關鍵字, 則表示為觸發(fā)器,且 該類型觸發(fā)器僅能在表上創(chuàng)建。?請參看“12.8 觸發(fā)器”? , , 關鍵字用來指明哪種數據操作將激活觸發(fā)器。至少要指明一個 選項,在觸發(fā)器的定義中三者的順
16、序不受限制,且各選項要用 逗號隔開。?表明增加另外一個已存在某一類型觸發(fā)器。只有在兼容性水平 (指某一數據庫行為與以前版本的 兼容程度)不大于 65 時 才使用該選項。?表明當復制處理修改與觸發(fā)器相關聯(lián)的表時,觸發(fā)器不能被執(zhí)行。?是觸發(fā)器將要執(zhí)行的動作。?是包含在觸發(fā)器中的條件語句或處理語句。觸發(fā)器的條件語句 定義了另外的標準來決定將被執(zhí)行的、 、語句是否激活觸發(fā) 器。? () 用來測定對某一確定列是插入操作還是更新操作,但不與刪除 操作用在一起。()僅在 和類型的觸發(fā)器中使用,用其來檢查所涉及的列是被更新還是被插入。是在比較中使用的位邏輯運算符。是那些被更新或插入的列的整形位掩碼。例如,如果
17、表 T包括 C1, C2, C3, C4, C5五列。為了確定是否只有C2列被修 改,可用2來做位掩碼,如果想確定是否C1,C2,C3, C4都 被修改,可用14來做位掩碼。是一比較操作符用“二表示檢查在 中定義的所有列是否都被更 新,用“>”表示檢查是否在 中定義的某些列被更新。指那些被檢查是否被更新的列的位掩碼。M 12: £卜inies哀上創(chuàng)建 個ffiA.更新類型麗謝這個觸發(fā)器的名稱溝 創(chuàng)建觸發(fā)器的語句如卜I;r-eate kisser Lrz dion titlesfor deler&.updateremm從以上的介紹中我們可以看出觸發(fā)器具有強大的功能,那么是
18、如何管理觸發(fā)器來完成這些任務呢?下面我們將對其工作原理及實現(xiàn) 做較為詳細的介紹每個觸發(fā)器有兩個特殊的表:插入表和刪除表。這兩個表是邏輯 表,并且這兩個表是由系統(tǒng)管理的,存儲在內存中,不是存儲在數據 庫中,因此不允許用戶直接對其修改。這兩個表的結構總是與被該觸 發(fā)器作用的表有相同的表結構。這兩個表是動態(tài)駐留在內存中的,當 觸發(fā)器工作完成,這兩個表也被刪除。這兩個表主要保存因用戶操作 而被影響到的原數據值或新數據值。另外,這兩個表是只讀的,即用 戶不能向這兩個表寫入內容,但可以引用表中的數據。例如可用如下 語句查看表中的信息:F面詳細介紹這兩個表的功能:插入表的功能對一個定義了插入類型觸發(fā)器的表來講,一旦對該表執(zhí)行了插入 操作,那么對向該表插入的所有行來說,都有一個相應的副本存放到 插入表中。即插入表就是用來存儲向原表插入的內容。刪除表的功能對一個定義了刪除類型觸發(fā)器的表來講,一旦對該表執(zhí)行了刪除 操作,則將所有的刪除行存放至刪除表中。這樣做的目的是,一旦觸 發(fā)器遇到了強迫它中止的語句被執(zhí)行時,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升義務教育跨學科教學效果的有效策略與實踐路徑
- 網絡安全事件處理流程試題及答案
- 2023-2025北京高三二模語文匯編:詞語
- 2025年公司數字化戰(zhàn)略探索試題及答案
- 信息處理技術員復習計劃與試題答案
- 2025年小學老師師德自查自糾總結模版
- 電力設備行業(yè)發(fā)展趨勢與市場展望分析
- 初中生物跨學科教學的創(chuàng)新策略與實踐路徑
- 行政法學的創(chuàng)新思維試題與答案
- 社會實踐主題演講講話發(fā)言稿參考范文范文(4篇)
- 電力工程技術投標文件
- 消防工程監(jiān)理細則范本
- 食堂采購驗收表
- 月工程進度款報審表
- 獨角仙介紹精品課件
- 抗病毒藥物講稿
- 主動脈內球囊反搏(IABP)課件
- 關鍵特殊過程監(jiān)控記錄表
- 配電變壓器調檔施工技術方案
- 預防性健康檢管理制度管理辦法
- 英漢語法對比研究
評論
0/150
提交評論