共計(jì) 1406 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
這篇文章主要介紹了數(shù)據(jù)庫中觸發(fā)器有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
觸發(fā)器有兩個(gè)穩(wěn)態(tài),可分別表示二進(jìn)制數(shù)碼 0 和 1,無外觸發(fā)時(shí)可維持穩(wěn)態(tài);外觸發(fā)下,兩個(gè)穩(wěn)態(tài)可相互轉(zhuǎn)換,已轉(zhuǎn)換的穩(wěn)定狀態(tài)可長期保持下來,這就使得觸發(fā)器能夠記憶二進(jìn)制信息,常用作二進(jìn)制存儲(chǔ)單元。
觸發(fā)器(trigger)是 SQL server 提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來觸發(fā),比如當(dāng)對(duì)一個(gè)表進(jìn)行操作(insert,delete,update)時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強(qiáng)數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等。
觸發(fā)器作用
1、在寫入數(shù)據(jù)表前,強(qiáng)制檢驗(yàn)或轉(zhuǎn)換數(shù)據(jù)。
2、觸發(fā)器發(fā)生錯(cuò)誤時(shí),異動(dòng)的結(jié)果會(huì)被撤銷。
3、部分?jǐn)?shù)據(jù)庫管理系統(tǒng)可以針對(duì)數(shù)據(jù)定義語言(DDL)使用觸發(fā)器,稱為 DDL 觸發(fā)器。
4、可依照特定的情況,替換異動(dòng)的指令(INSTEADOF)。
觸發(fā)器分類
1、ML 觸發(fā)器
當(dāng)數(shù)據(jù)庫中表中的數(shù)據(jù)發(fā)生變化時(shí),包括 insert,update,delete 任意操作,如果我們對(duì)該表寫了對(duì)應(yīng)的 DML 觸發(fā)器,那么該觸發(fā)器自動(dòng)執(zhí)行。DML 觸發(fā)器的主要作用在于強(qiáng)制執(zhí)行業(yè)務(wù)規(guī)則,以及擴(kuò)展 SqlServer 約束,默認(rèn)值等。因?yàn)槲覀冎兰s束只能約束同一個(gè)表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意 Sql 命令。
2、DDL 觸發(fā)器
它是 SqlServer2005 新增的觸發(fā)器,主要用于審核與規(guī)范對(duì)數(shù)據(jù)庫中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時(shí)執(zhí)行,我們主要用它來記錄數(shù)據(jù)庫的修改過程,以及限制程序員對(duì)數(shù)據(jù)庫的修改,比如不允許刪除某些指定表等。
3、登錄觸發(fā)器
登錄觸發(fā)器將為響應(yīng) LOGIN 事件而激發(fā)存儲(chǔ)過程。與 SQLServer 實(shí)例建立用戶會(huì)話時(shí)將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗(yàn)證階段完成之后且用戶會(huì)話實(shí)際建立之前激發(fā)。因此,來自觸發(fā)器內(nèi)部且通常將到達(dá)用戶的所有消息(例如錯(cuò)誤消息和來自 PRINT 語句的消息)會(huì)傳送到 SQLServer 錯(cuò)誤日志。如果身份驗(yàn)證失敗,將不激發(fā)登錄觸發(fā)器。
觸發(fā)器優(yōu)點(diǎn)
觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實(shí)現(xiàn)級(jí)聯(lián)更改,不過,通過級(jí)聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強(qiáng)制用比 CHECK 約束定義的約束更為復(fù)雜的約束。與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個(gè)表中的 SELECT 比較插入或更新的數(shù)據(jù),以及執(zhí)行其它操作,如修改數(shù)據(jù)或顯示用戶定義錯(cuò)誤信息。觸發(fā)器也可以評(píng)估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對(duì)策。一個(gè)表中的多個(gè)同類觸發(fā)器(INSERT、UPDATE 或 DELETE)允許采取多個(gè)不同的對(duì)策以響應(yīng)同一個(gè)修改語句。
觸發(fā)器的穩(wěn)態(tài)
(1)觸發(fā)器有兩個(gè)穩(wěn)態(tài),可分別表示二進(jìn)制數(shù)碼 0 和 1,無外觸發(fā)時(shí)可維持穩(wěn)態(tài);
(2)外觸發(fā)下,兩個(gè)穩(wěn)態(tài)可相互轉(zhuǎn)換(稱翻轉(zhuǎn)),已轉(zhuǎn)換的穩(wěn)定狀態(tài)可長期保持下來,這就使得觸發(fā)器能夠記憶二進(jìn)制信息,常用作二進(jìn)制存儲(chǔ)單元。
感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“數(shù)據(jù)庫中觸發(fā)器有什么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
向 AI 問一下細(xì)節(jié)