觸發器的學習

2021-07-04 14:52:10 字數 1376 閱讀 7467

一、觸發器(trigger)是sql server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作( insert,delete, update)時就會啟用它執行。觸發器經常用於加強資料的完整性約束和業務規則等。 觸發器可以從 dba_triggers ,user_triggers 資料字典中查到。sql3的觸發器是乙個能由系統自動執行對資料庫修改的語句。

觸發器可以查詢其他表,而且可以包含複雜的sql語句。它們主要用於強**從複雜的業務規則或要求。例如:您可以根據客戶當前的帳戶狀態,控制是否允許插入新訂單。

觸發器也可用於強制引用完整性,以便在多個表中新增、更新或刪除行時,保留在這些表之間所定義的關係。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外來鍵約束。如果使用資料庫關係圖,則可以在表之間建立關係以自動建立外來鍵約束。

觸發器與儲存過程的唯一區別是觸發器不能執行execute語句呼叫,而是在使用者執行transact-sql語句時自動觸發執行。

二、語法及作用

create or replace trigger

on 表名

[for each row when()]

觸發器有如下作用:

三、觸發器的型別

1、語句級觸發器(針對的是表)

在指定的操作語句執行前或者後執行一次,不管這條語句影響了多少行。

2、行級觸發器(針對的是行)

觸發語句的作用每一行記錄都被觸發。在行級觸發器中使用:old和:new偽記錄變數,識別值的變數

四、案例

1、語句級觸發器

2、行級觸發器

觸發器學習

觸發器學習 查詢觸發器 select table owner,table name,trigger body from user triggers 刪除觸發器 drop trigger trigger name 但觸發器一般是這樣建的 create or replace 也就是如果存在的話,就可以替...

觸發器學習

1 觸發器概念 2 觸發器與儲存過程的唯一區別是觸發器不能執行execute語句呼叫,觸發器為自動觸發。2 建立簡單觸發器 create trigger dbo aa on dbo aaaa for insert delete,update astruncate table bbbb insert ...

觸發器學習《一》 簡單觸發器建立

1 建立表 create table userinfo id number 10,0 primary key,name varchar2 40 2 建立序列 create sequence userinfo seq start with 1 maxvalue 9999999999 increment...