qileilove

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

          數據庫之觸發(fā)器

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

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

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

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

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

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

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

            創(chuàng)建觸發(fā)器的規(guī)則和限制:

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

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

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

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

            5、雖然不能在臨時數據表上創(chuàng)建觸發(fā)器,但是觸發(fā)器可以引用臨時數據表。

            6、不能在系統(tǒng)數據表創(chuàng)建觸發(fā)器,也不可以引用系統(tǒng)數據庫。

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

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

            9、Writetext語句不會引發(fā)insert或update觸發(fā)器

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

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

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

            table:觸發(fā)器所在的表名

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

            例子:exec sp_helptrigger'employee'

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

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

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 肇庆市| 德清县| 正宁县| 石狮市| 蒙阴县| 曲周县| 白山市| 布尔津县| 翁源县| 荣昌县| 富源县| 天柱县| 临沧市| 色达县| 石棉县| 屏边| 杭锦后旗| 响水县| 苏州市| 垣曲县| 循化| 乐陵市| 淮南市| 同德县| 江口县| 龙岩市| 新乐市| 桂林市| 汤原县| 琼海市| 乌拉特中旗| 卫辉市| 仪征市| 永平县| 彩票| 安丘市| 信宜市| 喜德县| 大荔县| 民勤县| 宾川县|