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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巫溪县| 吉林省| 米易县| 淮北市| 米脂县| 万山特区| 襄汾县| 油尖旺区| 西峡县| 崇信县| 江源县| 海口市| 易门县| 大庆市| 昭通市| 呼伦贝尔市| 滦平县| 柳林县| 林甸县| 承德市| 若羌县| 大姚县| 保山市| 泌阳县| 天镇县| 北辰区| 永仁县| 招远市| 莫力| 黄石市| 浦县| 泽州县| 泰安市| 白水县| 建昌县| 普安县| 林西县| 富平县| 阳谷县| 大姚县| 毕节市|