



免費預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
觸發(fā)器格式SQL觸發(fā)器語法語法 CREATE TRIGGER trigger_name ON table | view WITH ENCRYPTION FOR | AFTER | INSTEAD OF INSERT DELETE UPDATE WITH APPEND NOT FOR REPLICATION AS IF UPDATE ( column ) AND | OR UPDATE ( column ) .n | IF ( COLUMNS_UPDATED ( ) updated_bitmask ) column_bitmask .n sql_statement .n 參數(shù) trigger_name 是觸發(fā)器的名稱。觸發(fā)器名稱必須符合標(biāo)識符規(guī)則,并且在數(shù)據(jù)庫中必須唯一??梢赃x擇是否指定觸發(fā)器所有者名稱。 Table | view 是在其上執(zhí)行觸發(fā)器的表或視圖,有時稱為觸發(fā)器表或觸發(fā)器視圖??梢赃x擇是否指定表或視圖的所有者名稱。 WITH ENCRYPTION 加密 syscomments 表中包含 CREATE TRIGGER 語句文本的條目。使用 WITH ENCRYPTION 可防止將觸發(fā)器作為 SQL Server 復(fù)制的一部分發(fā)布。 AFTER 指定觸發(fā)器只有在觸發(fā) SQL 語句中指定的所有操作都已成功執(zhí)行后才激發(fā)。所有的引用級聯(lián)操作和約束檢查也必須成功完成后,才能執(zhí)行此觸發(fā)器。 如果僅指定 FOR 關(guān)鍵字,則 AFTER 是默認設(shè)置。 不能在視圖上定義 AFTER 觸發(fā)器。 INSTEAD OF 指定執(zhí)行觸發(fā)器而不是執(zhí)行觸發(fā) SQL 語句,從而替代觸發(fā)語句的操作。 在表或視圖上,每個 INSERT、UPDATE 或 DELETE 語句最多可以定義一個 INSTEAD OF 觸發(fā)器。然而,可以在每個具有 INSTEAD OF 觸發(fā)器的視圖上定義視圖。 INSTEAD OF 觸發(fā)器不能在 WITH CHECK OPTION 的可更新視圖上定義。如果向指定了 WITH CHECK OPTION 選項的可更新視圖添加 INSTEAD OF 觸發(fā)器,SQL Server 將產(chǎn)生一個錯誤。用戶必須用 ALTER VIEW 刪除該選項后才能定義 INSTEAD OF 觸發(fā)器。 DELETE , INSERT , UPDATE 是指定在表或視圖上執(zhí)行哪些數(shù)據(jù)修改語句時將激活觸發(fā)器的關(guān)鍵字。必須至少指定一個選項。在觸發(fā)器定義中允許使用以任意順序組合的這些關(guān)鍵字。如果指定的選項多于一個,需用逗號分隔這些選項。 對于 INSTEAD OF 觸發(fā)器,不允許在具有 ON DELETE 級聯(lián)操作引用關(guān)系的表上使用 DELETE 選項。同樣,也不允許在具有 ON UPDATE 級聯(lián)操作引用關(guān)系的表上使用 UPDATE 選項。 WITH APPEND 指定應(yīng)該添加現(xiàn)有類型的其它觸發(fā)器。只有當(dāng)兼容級別是 65 或更低時,才需要使用該可選子句。如果兼容級別是 70 或更高,則不必使用 WITH APPEND 子句添加現(xiàn)有類型的其它觸發(fā)器(這是兼容級別設(shè)置為 70 或更高的 CREATE TRIGGER 的默認行為)。有關(guān)更多信息,請參見 sp_dbcmptlevel。 WITH APPEND 不能與 INSTEAD OF 觸發(fā)器一起使用,或者,如果顯式聲明 AFTER 觸發(fā)器,也不能使用該子句。只有當(dāng)出于向后兼容而指定 FOR 時(沒有 INSTEAD OF 或 AFTER),才能使用 WITH APPEND。以后的版本將不支持 WITH APPEND 和 FOR(將被解釋為 AFTER)。 NOT FOR REPLICATION 表示當(dāng)復(fù)制進程更改觸發(fā)器所涉及的表時,不應(yīng)執(zhí)行該觸發(fā)器。 AS 是觸發(fā)器要執(zhí)行的操作。 sql_statement 是觸發(fā)器的條件和操作。觸發(fā)器條件指定其它準(zhǔn)則,以確定 DELETE、INSERT 或 UPDATE 語句是否導(dǎo)致執(zhí)行觸發(fā)器操作。 當(dāng)嘗試 DELETE、INSERT 或 UPDATE 操作時,Transact-SQL語句中指定的觸發(fā)器操作將生效。 觸發(fā)器可以包含任意數(shù)量和種類的 Transact-SQL 語句。觸發(fā)器旨在根據(jù)數(shù)據(jù)修改語句檢查或更改數(shù)據(jù);它不應(yīng)將數(shù)據(jù)返回給用戶。觸發(fā)器中的 Transact-SQL 語句常常包含控制流語言。CREATE TRIGGER 語句中使用幾個特殊的表: * deleted 和 inserted 是邏輯(概念)表。這些表在結(jié)構(gòu)上類似于定義觸發(fā)器的表(也就是在其中嘗試用戶操作的表);這些表用于保存用戶操作可能更改的行的舊值或新值。例如,若要檢索 deleted 表中的所有值,請使用: SELECT * FROM deleted * 如果兼容級別等于 70,那么在 DELETE、INSERT 或 UPDATE 觸發(fā)器中,SQL Server 將不允許引用 inserted 和 deleted 表中的 text、ntext 或 image 列。不能訪問 inserted 和 deleted 表中的 text、ntext 和 image 值。若要在 INSERT 或 UPDATE 觸發(fā)器中檢索新值,請將 inserted 表與原始更新表聯(lián)接。當(dāng)兼容級別是 65 或更低時,對 inserted 或 deleted 表中允許空值的text、ntext 或 image 列,將返回空值;如果這些列不可為空,則返回零長度字符串。 當(dāng)兼容級別是 80 或更高時,SQL Server 允許在表或視圖上通過 INSTEAD OF 觸發(fā)器更新 text、ntext 或 image 列。 n 是表示觸發(fā)器中可以包含多條 Transact-SQL 語句的占位符。對于 IF UPDATE (column) 語句,可以通過重復(fù) UPDATE (column) 子句包含多列。 IF UPDATE (column) 測試在指定的列上進行的 INSERT 或 UPDATE 操作,不能用于 DELETE 操作??梢灾付ǘ嗔小R驗樵?ON 子句中指定了表名,所以在 IF UPDATE 子句中的列名前不要包含表名。若要測試在多個列上進行的 INSERT 或 UPDATE 操作,請在第一個操作后指定單獨的 UPDATE(column) 子句。在 INSERT 操作中 IF UPDATE 將返回 TRUE 值,因為這些列插入了顯式值或隱性 (NULL) 值。 說明 IF UPDATE (column) 子句的功能等同于 IF、IF.ELSE 或 WHILE 語句,并且可以使用 BEGIN.END 語句塊。有關(guān)更多信息,請參見控制流語言。 可以在觸發(fā)器主體中的任意位置使用 UPDATE (column)。 column 是要測試 INSERT 或 UPDATE 操作的列名。該列可以是 SQL Server 支持的任何數(shù)據(jù)類型。但是,計算列不能用于該環(huán)境中。有關(guān)更多信息,請參見數(shù)據(jù)類型。 IF (COLUMNS_UPDATED() 測試是否插入或更新了提及的列,僅用于 INSERT 或 UPDATE 觸發(fā)器中。COLUMNS_UPDATED 返回 varbinary 位模式,表示插入或更新了表中的哪些列。 COLUMNS_UPDATED 函數(shù)以從左到右的順序返回位,最左邊的為最不重要的位。最左邊的位表示表中的第一列;向右的下一位表示第二列,依此類推。如果在表上創(chuàng)建的觸發(fā)器包含 8 列以上,則 COLUMNS_UPDATED 返回多個字節(jié),最左邊的為最不重要的字節(jié)。在 INSERT 操作中 COLUMNS_UPDATED 將對所有列返回 TRUE 值,因為這些列插入了顯式值或隱性 (NULL) 值。 可以在觸發(fā)器主體中的任意位置使用 COLUMNS_UPDATED。 bitwise_operator 是用于比較運算的位運算符。 updated_bitmask 是整型位掩碼,表示實際更新或插入的列。例如,表 t1 包含列 C1、C2、C3、C4 和 C5。假定表 t1 上有 UPDATE 觸發(fā)器,若要檢查列 C2、C3 和 C4 是否都有更新,指定值 14;若要檢查是否只有列 C2 有更新,指定值 2。 comparison_operator 是比較運算符。使用等號 (=) 檢查 updated_bitmask 中指定的所有列是否都實際進行了更新。使用大于號 () 檢查 updated_bitmask 中指定的任一列或某些列是否已更新。 column_bitmask 是要檢查的列的整型位掩碼,用來檢查是否已更新或插入了這些列。小實例create trigger trlone on card for updateasif update(id)beginupdate user1 set cardid=(select id from inserted)where cardid=(select id from deleted)endupdate card set id=6 where id=1=create trigger trlone on card for deleteasdelete user1 from user1 u, deleted dwhere u.cardid=d.iddelete card where id=1=create trigger trlone on card for insertasbegininsert into user1 (id,name)select id,name from insertedendinsert into card (id,name)values(23,12)select * from user1-declare id int,name nvarchar(50)-select id=id,name=name inserted-insert into user1(id,name)value
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)學(xué)倫理學(xué)考試真題試題及答案
- 2025年物流管理與供應(yīng)鏈課程考核試卷及答案
- 2025年網(wǎng)絡(luò)營銷師資格考試試題及答案
- 2025年農(nóng)林經(jīng)濟管理專業(yè)市場調(diào)研考試卷及答案
- 2025年機械工程師資格考試試卷及答案
- 2025年婚姻家庭咨詢師執(zhí)業(yè)考試知識點及答案
- 2025年環(huán)境科學(xué)相關(guān)考試試題及答案
- 2025年服務(wù)禮儀培訓(xùn)測試題及答案
- 2025年公務(wù)員綜合素質(zhì)測試材料試題及答案
- 文學(xué)鑒賞之情感共鳴的培養(yǎng)教案
- 2024國家安全教育大學(xué)生讀本題庫
- DBJ04T 439-2023 房屋建筑和市政基礎(chǔ)設(shè)施工程造價指標(biāo)指數(shù)編制標(biāo)準(zhǔn)
- 新版統(tǒng)編版一年級道德與法治下冊全冊教案(完整版)教學(xué)設(shè)計含教學(xué)反思
- 2025年上半年廣東汕尾市城區(qū)招聘政府聘員69人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年不動產(chǎn)登記代理人《地籍調(diào)查》考試題庫大全(含真題、典型題)
- 2025版MCN公司藝人合作簽約合同范本3篇
- 財務(wù)服務(wù)協(xié)議書
- YC/Z 623-2024煙草商業(yè)企業(yè)卷煙物流應(yīng)急作業(yè)指南
- GB/T 45098-2024營運純電動汽車換電服務(wù)技術(shù)要求
- 物聯(lián)網(wǎng)安全風(fēng)險與防護
- 2025年中考英語話題作文范文20篇
評論
0/150
提交評論