順手再轉乙個建立觸發器的初級教程吧

2021-08-29 07:00:15 字數 1867 閱讀 7667

上面介紹了有關觸發器的概念、作用和一些基本問題,下面我們將分別介紹在ms sqlserver 中如何用sql server 管理工具enterprise manager 和transaction_sql 來建立觸發器。

在建立觸發器以前必須考慮到以下幾個方面:

create trigger 語句必須是批處理的第乙個語句; 表的所有者具有建立觸發器的預設許可權,表的所有者不能把該許可權傳給其它使用者; 觸發器是資料庫物件,所以其命名必須符合命名規則; 儘管在觸發器的sql 語句中可以參照其它資料庫中的物件,但是,觸發器只能建立在當前資料庫中; 雖然觸發器可以參照檢視或臨時表,但不能在檢視或臨時表上建立觸發器,而只能在基表或在建立檢視的表上建立觸發器; 乙個觸發器只能對應乙個表,這是由觸發器的機制決定的; 儘管truncate table 語句如同沒有where 從句的delete 語句,但是由於truncate table 語句沒有被記入日誌,所以該語句不能觸發delete 型觸發器; writetext 語句不能觸發insert 或update 型的觸發器。   

當建立乙個觸發器時,必須指定觸發器的名字,在哪乙個表上定義觸發器,啟用觸發 器的修改語句,如insert、 delete、 update。 當然兩個或三個不同的修改語句也可 以都觸發同乙個觸發器,如insert 和update 語句都能啟用同乙個觸發器。

12.6.1 用管理工具enterprise manger 建立觸發器

12.6.2 用create trigger 命令建立觸發器

各引數的說明如下:

trigger_name

是使用者要建立的觸發器的名字觸發器的名字,必須符合ms sql server 的命名規則,且其名字在當前資料庫中必須是惟一的。 table

是與使用者建立的觸發器相關聯的表的名字,並且該錶已經存在。 with encryption

表示對包含有create trigger 文字的syscomments 表進行加密。 after

表示只有在執行了指定的操作(insert、 delete、 update)之後觸發器才被啟用,執行觸發器中的sql 語句。若使用關鍵字for, 則表示為after 觸發器,且該型別觸發器僅能在表上建立。 instead of

請參看「12.8 instead of 觸發器」 [delete] [,] [insert] [,] [update]

表明增加另外乙個已存在某一型別觸發器。只有在相容性水平(指某一資料庫行為與以前版本的ms sql server 相容程度)不大於65 時才使用該選項。 not for replication

表明當複製處理修改與觸發器相關聯的表時,觸發器不能被執行。 as

是觸發器將要執行的動作。 sql_statement

是包含在觸發器中的條件語句或處理語句。觸發器的條件語句定義了另外的標準來決定將被執行的insert、 delete、 update 語句是否啟用觸發器。 if update (column)

用來測定對某一確定列是插入操作還是更新操作,但不與刪除操作用在一起。 if (columns_updated())

僅在insert 和update 型別的觸發器中使用,用其來檢查所涉及的列是被更新還是被插入。 bitwise_operatorj

是在比較中使用的位邏輯運算子。 pdated_bitmask

是那些被更新或插入的列的整形位掩碼。例如,如果表t 包括c1, c2, c3, c4, c5五列。為了確定是否只有c2 列被修改,可用2 來做位掩碼,如果想確定是否c1, c2, c3,c4 都被修改,可用14 來做位掩碼。 comparison_operator

是一比較操作符用「= 」表示檢查在updated_bitmask 中定義的所有列是否都被更新,用「>」 表示檢查是否在updated_bitmask 中定義的某些列被更新。 column_bitmask

指那些被檢查是否被更新的列的位掩碼。

乙個觸發器

設計乙個觸發器,當刪除employees中的某個雇員時,刪除orders表中的與這個雇員 相關的一切記錄。第一步 建立儲存過程 drop trigger employees delete gocreate trigger employees delete on employees instead o...

乙個觸發器的例子

create or replace trigger usremhr trg sq rule insert before insert on sq rule base for each row declare temp rule id varchar2 10 temp rul theme id var...

乙個簡單的觸發器

觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。觸發器的特性 1 有begin end體,begin end 之間的語句可以寫的簡單或者複雜 2 什麼條件會觸發 i d u 3 什麼時候觸發 在增刪改前或者後 4 觸發頻率 針對每一行執行 5 觸發器定義在表上,附著...