當前位置:首頁 » 數據倉庫 » 資料庫觸發器實例
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫觸發器實例

發布時間: 2023-05-24 04:01:26

資料庫中的「觸發器」是什麼意思

在SQL中,名詞觸發器指「在資料庫中為響應一個特殊表格中的某些事件而自動執行的程序代碼。」(Wikipedia)說得簡單一些,它是在一個特殊的資料庫事件,如INSERT或DELETE發生時,自動激活的一段代碼。觸發器可方便地用於日誌記錄、對單個表格到其他鏈接式表格進行自動的「層疊式」更改、或保證對表格關系進行自動更新。當一個新整數值增加到資料庫域中時,自動更新運行的總數的代碼段是一個觸發器。自動記錄對一個特殊資料庫表格所作更改的SQL命令塊也是一個觸發器實例

⑵ 觸發器的應用和用法

1、觸發器的定義就是說某個條件成立的時候,觸發器裡面所定義的語句就會被自動的執行。因此觸發器不需要人為的去調用,也不能調用。

2、觸發器的觸發條件其實在定義的時候就已經設定好了。

3、觸發器可以分為語句級觸發器和行級觸發器。簡單的說就是語句級的觸發器可以在某些語句執行前或執行後被觸發。而行級觸發器則是在定義的了觸發的表中的行數據改變時就會被觸發一次。

4、具體舉例:

1)、 在一個表中定義語句級的觸發器,當這個表被刪除時,程序就會自動執行觸發器裡面定義的操作過程。這個【刪除表的操作】就是觸發器執行的條件。

2)、 在一個表中定義行級的觸發器,那當【這個表中一行數據發生變化】的時候,比如刪除了一行記錄,那觸發器也會被自動執行了。

5、創建觸發器語句

6、觸發器作用(應用場景)

(1)數據確認

(2)實施復雜的安全性檢查

(3)做日誌記錄,跟蹤表上所做的數據操作等

(4)數據的備份和同步;

(2)資料庫觸發器實例擴展閱讀

一、觸發器介紹

1、資料庫觸發器是一個與表相關聯的、存儲的 PL/SQL 程序。每當一個特定的數據操作語句(Insert,update,delete)在指定的表上發出時,Oracle 自動地執行觸發器中定義的語句序

列。

2、觸發器的作用

觸發器可用於:

(1)數據確認

(2)實施復雜的安全性檢查

(3)做審計,跟蹤表上所做的數據操作等

(4)數據的備份和同步

3、觸發器的類型

(1)語句級觸發器

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

(2)行級觸發器(FOR EACH ROW)

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

4、創建觸發器的語法

CREATE [or REPLACE] TRIGGER 觸發器名

{BEFORE |AFTER}

{DELETE | INSERT | UPDATE [OF 列名]}

ON 表名

[FOR EACH ROW [WHEN(條件) ] ]

參考資料

網路-Oracle觸發器

⑶ SQl中觸發器怎樣執行的

創建觸發器 是特殊的存儲過程,自動執行,一般不要有返回值。

1、後觸發器 (AFTER,FOR)先執行對應語句,後執行觸發器中的語句。

2、前觸發器 並沒有真正的執行觸發語句(insert,update,delete),而是執行觸發後的語句。

3、行級觸發器 (FOR EACH ROW) 在SQL server 中不存在。

(3)資料庫觸發器實例擴展閱讀:

創建觸發的語法

CREATE TRIGGER trigger_name --觸發器名稱

ON table_name --觸發的表

[WITH ENCRYPTION]

FOR [DELETE, INSERT, UPDATE] --選擇觸發器類型

AS --觸發後要做的語句

T-SQL語句

GO --結束標記

⑷ 誰知道在SQL中什麼是觸發器,有什麼作用

觸發器是一種特殊類型的存儲過程,不由用戶直接調用。創建觸發器時會對其進行定義,以便在對特定表或列作特定類型的數據修改時執行。
CREATE PROCEDURE 或 CREATE TRIGGER 語句不能跨越批處理。即存儲過程或觸發器始終只能在一個批處理中創建並編譯到一個執行計劃中。
用觸發器還可以強制執行業務規則
Microsoft® SQL Server64 2000 提供了兩種主要機制來強制業務規則和數據完整性:約束和觸發器。觸發器是一種特殊類型的存儲過程,它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應 INSERT、UPDATE 或 DELETE 語句。觸發器可以查詢其它表,並可以包含復雜的 Transact-SQL 語句。將觸發器和觸發它的語句作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如,磁碟空間不足),則整個事務即自動回滾。
觸發器的優點如下:
觸發器可通過資料庫中的相關表實現級聯更改;不過,通過級聯引用完整性約束可以更有效地執行這些更改。
觸發器可以強制比用 CHECK 約束定義的約束更為復雜的約束。
與CHECK 約束不同,觸發器可以引用其它表中的列。例如,觸發器可以使用另一個表中的 SELECT 比較插入或更新的數據,以及執行其它操作,如修改數據或顯示用戶定義錯誤信息。
觸發器也可以評估數據修改前後的表狀態,並根據其差異採取對策。
一個表中的多個同類觸發器(INSERT、UPDATE 或 DELETE)允許採取多個不同的對策以響應同一個修改語句。
比較觸發器與約束
約束和觸發器在特殊情況下各有優勢。觸發器的主要好處在於它們可以包含使用 Transact-SQL 代碼的復雜處理邏輯。因此,觸發器可以支持約束的所有功能;但它在所給出的功能上並不總是最好的方法。
實體完整性總應在最低級別上通過索引進行強制,這些索引或是 PRIMARY KEY 和 UNIQUE 約束的一部分,或是在約束之外獨立創建的。假設功能可以滿足應用程序的功能需求,域完整性應通過 CHECK 約束進行強制,而引用完整性 (RI) 則應通過 FOREIGN KEY 約束進行強制。
在約束所支持的功能無法滿足應用程序的功能要求時,觸發器就極為有用。例如:
除非REFERENCES 子句定義了級聯引用操作,否則 FOREIGN KEY 約束只能以與另一列中的值完全匹配的值來驗證列值。
CHECK 約束只能根據邏輯表達式或同一表中的另一列來驗證列值。

⑸ 請列舉幾種常用的觸發器

SQL Server 有三種常規類型的觸發器:DML 觸發器、DDL 觸發器和登錄觸發器。

DML觸發器,當資料庫中表中的數據發生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發器,那麼該觸發器自動執行;

DDL觸發器,它是Sql Server2005新增的觸發器,主要用於審核與規范對資料庫中表,觸發器,視圖等結構上的操作;

登錄觸發器,登錄觸發器將為響應 LOGIN 事件而激發存儲過程。與 SQL Server 實例建立用戶會話時將引發此事件。登錄觸發器將在登錄的身份驗證階段完成之後且用戶會話實際建立之前激發。