在SQLSERVER企業管理器中如何建立觸發器

2021-09-22 05:19:23 字數 2509 閱讀 5483

下面將分別介紹在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 語句都能啟用同乙個觸發器。 

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

其操作步驟如下:

啟動enterprise manger, 登入到指定的伺服器上。 

展開資料庫,然後展開要在其上建立觸發器的表所在的資料庫,然後單擊該錶。 

右擊滑鼠,在彈出選單中選擇all tasks, 然後單擊manage triggers…。 

如下圖:

在名字框中選擇new, 在文字框中輸入觸發器文字,如下圖 所示。

建立觸發器語法如下:

create trigger [trigger_name] on [dbo].[table

] for insert, update, delete 

assql_statement

各引數的說明如下:

·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]

關鍵字用來指明哪種資料操作將啟用觸發器。至少要指明乙個選項,在觸發器的定義中三者的順序不受限制,且各選項要用逗號隔開。

·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 中定義的某些列被更新。

SQL Server企業管理器無法使用

sql server出錯了,開啟企業管理器,就出現乙個對話方塊,資訊如下 視窗名是 mmc 管理單元初始化失敗 clsid 而且,查詢分析器裡面也沒有對相應的特殊關鍵字如 select from where by 進行著色,游標放在文字中間然後 ctrl v 插入文字不顯示,需要用滑鼠選擇一下,才能...

恢復企業管理器

早上使用360清理痕跡後,開啟企業管理器彈出如下錯誤提示 在網上找到了解決方法 1 開啟執行對話方塊輸入 mmc 2 控制台 新增 刪除管理單元 新增 找到microsoftsql企業管理器 新增 關閉 確定 3 控制台 選項 控制台模式選擇 使用者模式完全訪問 將下面的選擇全部取消 4 控制台 另...

企業管理器備份和還原SQL Server資料庫

在日常的資料庫操作中,我們常常對資料庫進行備份操作,以方便www.cppcns.com在資料庫發生災難時對資料庫進行還原,從而確保資料庫的安全性。sql server資料庫使用企業管理器可以簡單直觀地完成這些操作,還可以每天自動備份資料庫。本文我們就介紹了這一過程,接下來就讓我們來一起了解一下吧。一...