




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 觸發(fā)器是在對(duì)表進(jìn)行插入、更新或刪除觸發(fā)器是在對(duì)表進(jìn)行插入、更新或刪除操作時(shí)自動(dòng)執(zhí)行的操作時(shí)自動(dòng)執(zhí)行的存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程 觸發(fā)器可以確保數(shù)據(jù)的完整性和一致性觸發(fā)器可以確保數(shù)據(jù)的完整性和一致性 觸發(fā)器可以通過(guò)企業(yè)管理器或者查詢(xún)分析器來(lái)創(chuàng)建。觸發(fā)器可以通過(guò)企業(yè)管理器或者查詢(xún)分析器來(lái)創(chuàng)建。 語(yǔ)法語(yǔ)法:CREATE TRIGGER 觸發(fā)觸發(fā)器名器名稱(chēng)稱(chēng)ON 表表/視圖視圖-觸發(fā)器表或觸發(fā)器視圖觸發(fā)器表或觸發(fā)器視圖WITH ENCRYPTIONFOR DELETE, INSERT, UPDATEAS T-Sql語(yǔ)語(yǔ)句句觸發(fā)器觸發(fā)器可以與對(duì)可以與對(duì)表表執(zhí)行的三個(gè)操作(執(zhí)行的三個(gè)操作(INSERT、 UPDA
2、TE 和和 DELETE)相關(guān)聯(lián)相關(guān)聯(lián)觸發(fā)器可以引用視圖或臨時(shí)表,觸發(fā)器可以引用視圖或臨時(shí)表, 一個(gè)觸發(fā)器一個(gè)觸發(fā)器只只應(yīng)應(yīng)用于單用于單獨(dú)一個(gè)獨(dú)一個(gè)表表或視圖或視圖 WITH ENCRYPTION選項(xiàng)可用于對(duì)用戶(hù)隱藏觸發(fā)器選項(xiàng)可用于對(duì)用戶(hù)隱藏觸發(fā)器 的的定義。但是,加密定義。但是,加密的的觸發(fā)器觸發(fā)器無(wú)法進(jìn)行無(wú)法進(jìn)行解密解密觸發(fā)器可以包含任意數(shù)觸發(fā)器可以包含任意數(shù)量量的的 SQL SQL 語(yǔ)句語(yǔ)句默認(rèn)情況下,只有數(shù)據(jù)庫(kù)所有者才默認(rèn)情況下,只有數(shù)據(jù)庫(kù)所有者才具有具有創(chuàng)建創(chuàng)建觸發(fā)器觸發(fā)器的權(quán)限的權(quán)限。此此權(quán)限不可權(quán)限不可轉(zhuǎn)讓轉(zhuǎn)讓。觸發(fā)器只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建。觸發(fā)器只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建。 但是,
3、但是,觸發(fā)器可以引用其他數(shù)據(jù)庫(kù)觸發(fā)器可以引用其他數(shù)據(jù)庫(kù)中的中的對(duì)象。對(duì)象。觸發(fā)器觸發(fā)器可以可以訪(fǎng)問(wèn)兩個(gè)邏輯表訪(fǎng)問(wèn)兩個(gè)邏輯表- Inserted表表- Deleted表表 Inserted 和和Deleted 表表包含包含更新前和更新前和更新后的更新后的數(shù)據(jù)映像數(shù)據(jù)映像 Inserted和和Deleted表中不表中不包含表中不受包含表中不受更新操更新操作作 影響的數(shù)據(jù)影響的數(shù)據(jù)insert觸發(fā)器觸發(fā)器update觸發(fā)器觸發(fā)器delete觸發(fā)器觸發(fā)器當(dāng)當(dāng)試圖向試圖向表中表中插入數(shù)據(jù)插入數(shù)據(jù)時(shí),時(shí),將執(zhí)行將執(zhí)行 INSERT INSERT 觸發(fā)器觸發(fā)器 INSERT 觸發(fā)器執(zhí)行下列操作:觸發(fā)器執(zhí)行下
4、列操作:向向Inserted表中插入一個(gè)新行表中插入一個(gè)新行的的副本。副本。檢查檢查Inserted 表中的新行,確定是否要阻止該表中的新行,確定是否要阻止該插入操作。插入操作。如果如果所所插入插入的的行中的值是行中的值是有效有效的,的,則則將該行插將該行插入到觸發(fā)入到觸發(fā)器器表中。表中。當(dāng)當(dāng)試圖試圖從表中刪除數(shù)據(jù)時(shí),從表中刪除數(shù)據(jù)時(shí),將執(zhí)行將執(zhí)行DELETE 觸發(fā)器。觸發(fā)器。 DELETE觸發(fā)器執(zhí)行下列操作:觸發(fā)器執(zhí)行下列操作:從觸發(fā)從觸發(fā)器器表中刪除行。表中刪除行。將刪除將刪除的的行插入行插入到到Deleted表中。表中。檢查檢查Deleted表中的行,以確定是否需要表中的行,以確定是否需
5、要或應(yīng)如何執(zhí)行觸發(fā)器操作。或應(yīng)如何執(zhí)行觸發(fā)器操作。當(dāng)當(dāng)試圖試圖更新表中的數(shù)據(jù)時(shí),更新表中的數(shù)據(jù)時(shí),將執(zhí)行將執(zhí)行UPDATE觸發(fā)器觸發(fā)器 UPDATE 觸發(fā)器執(zhí)行下列操作:觸發(fā)器執(zhí)行下列操作:將原始數(shù)據(jù)行移到邏輯將原始數(shù)據(jù)行移到邏輯Deleted表中表中將一個(gè)新行插入將一個(gè)新行插入Inserted表表中,然后插入中,然后插入觸發(fā)觸發(fā)器器表中表中計(jì)算計(jì)算Deleted表和表和Inserted表中的值以確定是否需表中的值以確定是否需要進(jìn)行干預(yù)要進(jìn)行干預(yù)CREATE TRIGGER update_trigger1ON goodsFOR UPDATE AS/*檢查商品編號(hào)列或商品類(lèi)型編號(hào)列是否被修改,如
6、果有某些列被修改了,則取消修改操作*/IF UPDATE(goods_id) OR UPDATE(goods_type_id)BEGINPRINT 違背數(shù)據(jù)的一致性ROLLBACK TRANSACTIONENDGO例:在例:在shop數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)的goods表上創(chuàng)建一個(gè)表上創(chuàng)建一個(gè)UPDATE觸發(fā)器,若對(duì)觸發(fā)器,若對(duì)商品編號(hào)列或商品編號(hào)列或商品類(lèi)型編號(hào)列商品類(lèi)型編號(hào)列修改,則給出提示信息,并取消修改操作。修改,則給出提示信息,并取消修改操作。IF EXISTS (SELECT name FROM sysobjects WHERE name = reminder AND type = TR)D
7、ROP TRIGGER reminderGOCREATE TRIGGER reminder ON goodsFOR INSERT, UPDATE ,deleteASBEGINDECLARE str char(50)SET str=TRIGGER IS WORKINGPRINT strENDGO例:對(duì)于例:對(duì)于shop數(shù)據(jù)庫(kù),如果在數(shù)據(jù)庫(kù),如果在goods表中添加或更改數(shù)據(jù),表中添加或更改數(shù)據(jù),則向客戶(hù)端顯示一條則向客戶(hù)端顯示一條“TRIGGER IS WORKING”的信息。的信息。SQL 語(yǔ)句語(yǔ)句CREATE DATABASEALTER DATABASEDROP DATABASELOAD D
8、ATABASERECONFIGURERESTORE LOGDISK INITDISK RESIZELOAD LOGRESTORE DATABASE1創(chuàng)建觸發(fā)器(1)通過(guò)界面方式只能創(chuàng)建DML觸發(fā)器。以在表XS上創(chuàng)建觸發(fā)器為例,利用“對(duì)象資源管理器”創(chuàng)建DML觸發(fā)器步驟如下:?jiǎn)?dòng)“SQL Server Management Studio”,在“對(duì)象資源管理器”中展開(kāi)“數(shù)據(jù)庫(kù)”“XSBOOK”“表”“dbo.XS”選擇其中的“觸發(fā)器”目錄,在該目錄下可以看到之前已經(jīng)創(chuàng)建的XS表的觸發(fā)器。右擊“觸發(fā)器”,在彈出的快捷菜單中選擇“新建觸發(fā)器”菜單項(xiàng)。在打開(kāi)的“觸發(fā)器腳本編輯”窗口輸入相應(yīng)的創(chuàng)建觸發(fā)器的
9、命令。輸入完成后,單擊“執(zhí)行”按鈕,若執(zhí)行成功,則觸發(fā)器創(chuàng)建完成。(2)查看DDL觸發(fā)器。DDL觸發(fā)器不可以使用界面方式創(chuàng)建,DDL觸發(fā)器分為數(shù)據(jù)庫(kù)觸發(fā)器和服務(wù)器觸發(fā)器,展開(kāi)“數(shù)據(jù)庫(kù)”“XSBOOK”“可編程性”“數(shù)據(jù)庫(kù)觸發(fā)器”就可以查看到有哪些數(shù)據(jù)庫(kù)觸發(fā)器。展開(kāi)“數(shù)據(jù)庫(kù)”“服務(wù)器對(duì)象”“觸發(fā)器”就可以查看到有哪些服務(wù)器觸發(fā)器。2修改觸發(fā)器DML觸發(fā)器能夠使用界面方式修改,DDL觸發(fā)器則不可以。進(jìn)入“對(duì)象資源管理器”,修改觸發(fā)器的步驟與創(chuàng)建的步驟相同,在“對(duì)象資源管理器”中選擇要修改的“觸發(fā)器”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“修改”菜單項(xiàng),打開(kāi)“觸發(fā)器腳本編輯”窗口,在該窗口中可以進(jìn)行觸發(fā)
10、器的修改,修改后單擊“執(zhí)行”按鈕重新執(zhí)行即可。但是被設(shè)置成“WITH ENCRYPTION”的觸發(fā)器是不能被修改的。3刪除觸發(fā)器(1)刪除DML觸發(fā)器。以XS表的DML觸發(fā)器為例,在“對(duì)象資源管理器”中展開(kāi)“數(shù)據(jù)庫(kù)”“XSBOOK”“表”“dbo.XS”“觸發(fā)器”選擇要?jiǎng)h除的觸發(fā)器名稱(chēng),右擊鼠標(biāo),在彈出的快捷菜單中選擇“刪除”菜單項(xiàng),在彈出的“刪除對(duì)象”窗口中單擊“確定”按鈕,即可完成觸發(fā)器的刪除操作。(2)刪除DDL觸發(fā)器。刪除DDL觸發(fā)器與刪除DML觸發(fā)器的方法類(lèi)似,首先找到要?jiǎng)h除的觸發(fā)器,右擊鼠標(biāo),選擇“刪除”選項(xiàng)即可。 事務(wù)是指一個(gè)單元的工作事務(wù)是指一個(gè)單元的工作 事務(wù)具有四個(gè)屬性:原
11、子性、一致性、事務(wù)具有四個(gè)屬性:原子性、一致性、隔離性、耐久性隔離性、耐久性BiginBigin transaction transaction 語(yǔ)句語(yǔ)句1 1 語(yǔ)句語(yǔ)句2 2If(If(成功成功) ) commit transactionElse rollback transactionCREATE FUNCTION 函數(shù)名稱(chēng)函數(shù)名稱(chēng)(參數(shù)名稱(chēng)參數(shù)名稱(chēng) 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型,nn)RETURNS 返回值的數(shù)據(jù)類(lèi)型返回值的數(shù)據(jù)類(lèi)型ASBEGIN函數(shù)內(nèi)容函數(shù)內(nèi)容RETURN 返回的數(shù)據(jù)返回的數(shù)據(jù)表達(dá)式表達(dá)式END 本章首頁(yè)本章首頁(yè)調(diào)用用戶(hù)自定義函數(shù)的基本語(yǔ)法為:調(diào)用用戶(hù)自定義函數(shù)的基本語(yǔ)法為:變量變量=用戶(hù)名用戶(hù)名.函數(shù)名稱(chēng)(實(shí)際參數(shù)列表)函數(shù)名稱(chēng)(實(shí)際參數(shù)列表)注意:在調(diào)用返回?cái)?shù)值的用戶(hù)自定義函注意:在調(diào)用返回?cái)?shù)值的用戶(hù)自定義函數(shù)時(shí),一定要在函數(shù)名稱(chēng)的前面加上用數(shù)時(shí),一定要在函數(shù)名稱(chēng)的前面加上用戶(hù)名戶(hù)名 調(diào)用用戶(hù)自定義函數(shù)調(diào)用用戶(hù)自定義函數(shù)創(chuàng)建函數(shù)創(chuàng)建函數(shù)CREATE FUNCTION udf_age
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)設(shè)計(jì)與消費(fèi)心理的互動(dòng)影響
- 工業(yè)遺產(chǎn)的旅游價(jià)值挖掘與利用
- 工作場(chǎng)所心理健康與防騙意識(shí)培養(yǎng)
- 工業(yè)設(shè)計(jì)與產(chǎn)品包裝的關(guān)聯(lián)性研究
- 工作流程標(biāo)準(zhǔn)化及其在企業(yè)管理中的應(yīng)用案例
- 工作場(chǎng)所的多樣化管理
- 工作流程優(yōu)化與管理方法改進(jìn)
- 工程教育的項(xiàng)目式學(xué)習(xí)與教學(xué)設(shè)計(jì)
- 工程機(jī)械的智能化設(shè)計(jì)與維護(hù)
- 市場(chǎng)分析與市場(chǎng)營(yíng)銷(xiāo)決策結(jié)合的研究
- 2024新滬教版英語(yǔ)(五四學(xué)制)七年級(jí)上單詞表 (英譯漢)
- 金蝶KIS專(zhuān)業(yè)版完整操作手冊(cè)
- 2025年社區(qū)工作者考試試題庫(kù)及答案
- 省級(jí)示范幼兒園評(píng)估細(xì)則解讀 辦園管理部分解讀課件
- 淺析火災(zāi)延伸調(diào)查工作指引
- 2024年吉林長(zhǎng)春市中考地理試卷真題(含答案解析)
- 2024年湖北黃岡市檢察機(jī)關(guān)招聘雇員制檢察輔助人員50人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- DG-TJ 08-2255-2018 節(jié)段預(yù)制拼裝預(yù)應(yīng)力混凝土橋梁設(shè)計(jì)標(biāo)準(zhǔn)
- 2024年廣東省中考道德與法治試卷(含答案)
- 2024年小區(qū)地下車(chē)位租賃合同
- 2024年廣東省中考化學(xué)真題
評(píng)論
0/150
提交評(píng)論