qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          數據庫之觸發器

           觸發器——看到這個名字總是會想到數電中學過的觸發器,有輸入端和輸出端,根據電平的高低來觸發。

            數據庫中的觸發器是個特殊的存儲過程,主要是通過事件進行觸發而被執行的,而存儲過程可以通過存儲過程名稱而被直接調用。

            作用:使用T——SQL語句進行復雜的邏輯處理,基于一個表創建,但是可以對多個表進行操作,因此常常用于復雜的業務規則。可以完成如下功能:

            1 、級聯修改數據庫中相關的表

            2、執行比核查約束更為復雜的約束操作

            3、拒絕或回滾違反引用完整性的操作。

            4、比較表修改前后數據之間的差別,并根據差別采取相應的操作。

            創建觸發器的規則和限制:

            1、Create Trigger語句必須是批處理中的第一個語句。

            2、在默認情況下,創建觸發器的權限將分配給數據表的所有者,且不能轉給其他用戶

            3、觸發器是數據庫對象,其名稱必須遵循標識符的命名規則。

            4、雖然觸發器可以引用當前數據庫以外的對象,但是只能在當前數據庫中創建觸發器。

            5、雖然不能在臨時數據表上創建觸發器,但是觸發器可以引用臨時數據表。

            6、不能在系統數據表創建觸發器,也不可以引用系統數據庫。

            7、在包含使用delete或updata操作定義中,不能定義instead of和instead of update觸發器。

            8、TRUNCATE TABLE語句不會引發Delete觸發器,因為該語句沒有被記入日志

            9、Writetext語句不會引發insert或update觸發器

            注意:當創建一個觸發器時必須指定:名稱;在其上定義觸發器的表;觸發器將何時激發;激活觸發器的數據修改語句。

            管理觸發器有兩種方法:一是使用企業管理器管理觸發器;二是使用T——SQL管理觸發器。都可以對觸發器進行創建,修改,刪除。

            使用T——SQL查看觸發器相關數據:使用系統存儲過程sp_helptrigger:語法如下:exec sp_helptrigger‘table’[,'type']

            table:觸發器所在的表名

            type:指定列出的操作類型的觸發器。若不指定,則列出所有的觸發器。

            例子:exec sp_helptrigger'employee'

          posted on 2012-07-03 10:01 順其自然EVO 閱讀(218) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2012年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁波市| 蓬莱市| 麻栗坡县| 邵阳县| 绥宁县| 马边| 苍溪县| 武乡县| 德钦县| 喀喇沁旗| 陕西省| 鄯善县| 普兰店市| 瑞昌市| 灌南县| 泰顺县| 耒阳市| 青岛市| 江都市| 兰西县| 永宁县| 高台县| 阳东县| 东兰县| 中山市| 固安县| 阿拉善左旗| 宜春市| 屏东市| 天全县| 镶黄旗| 许昌市| 凤台县| 琼海市| 和田县| 陵川县| 兴安盟| 南昌县| 福州市| 丰城市| 郑州市|