国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

創建觸發器

2024-07-21 02:12:57
字體:
來源:轉載
供稿:網友
  上面介紹了有關觸發器的概念、作用和一些基本問題,下面我們將分別介紹在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 創建觸發器
其操作步驟如下:

  1. 啟動enterprise manger, 登錄到指定的服務器上。
  2. 展開數據庫,然后展開要在其上創建觸發器的表所在的數據庫,然后單擊該表。
  3. 右擊鼠標,在彈出菜單中選擇all tasks, 然后單擊manage triggers…。
  4. 在名字框中選擇new, 在文本框中輸入觸發器文本,如圖12-5 所示。
  5. 單擊check syntax 檢查語句是否正確。
  6. 單擊apply, 在name 下拉列表中會有新創建的觸發器名字。
  7. 單擊ok, 關閉窗口創建成功。

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]
    關鍵字用來指明哪種數據操作將激活觸發器。至少要指明一個選項,在觸發器的定義中三者的順序不受限制,且各選項要用逗號隔開。
  • with append
    表明增加另外一個已存在某一類型觸發器。只有在兼容性水平(指某一數據庫行為與以前版本的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
    指那些被檢查是否被更新的列的位掩碼。

上一篇:觸發器的原理

下一篇:系統存儲過程

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克拉玛依市| 彭泽县| 勐海县| 磐安县| 津南区| 芜湖县| 巴林右旗| 抚松县| 房产| 广丰县| 广平县| 灵山县| 满城县| 崇义县| 安达市| 鹤庆县| 常熟市| 杭州市| 福鼎市| 光山县| 凌海市| 瑞昌市| 交口县| 平顺县| 乌什县| 麻江县| 荆州市| 阜新市| 德昌县| 兴城市| 曲靖市| 华安县| 香格里拉县| 闽侯县| 龙陵县| 景洪市| 桂林市| 大田县| 靖宇县| 旬阳县| 沂南县|