www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 技術(shù)學院 > 基礎(chǔ)知識科普站
[導讀]觸發(fā)器(trigger)是SQL server 提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動,而是由事件來觸發(fā),比如當對一個表進行操作( insert,delete, update)時就會激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強數(shù)據(jù)的完整性約束和業(yè)務規(guī)則等。

觸發(fā)器(trigger)是SQL server 提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動,而是由事件來觸發(fā),比如當對一個表進行操作( insert,delete, update)時就會激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強數(shù)據(jù)的完整性約束和業(yè)務規(guī)則等。 觸發(fā)器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數(shù)據(jù)字典中查到。SQL3的觸發(fā)器是一個能由系統(tǒng)自動執(zhí)行對數(shù)據(jù)庫修改的語句。觸發(fā)器可以查詢其他表,而且可以包含復雜的SQL語句。它們主要用于強制服從復雜的業(yè)務規(guī)則或要求。例如:您可以根據(jù)客戶當前的帳戶狀態(tài),控制是否允許插入新訂單。觸發(fā)器也可用于強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關(guān)系。然而,強制引用完整性的最好方法是在相關(guān)表中定義主鍵和外鍵約束。如果使用數(shù)據(jù)庫關(guān)系圖,則可以在表之間創(chuàng)建關(guān)系以自動創(chuàng)建外鍵約束。觸發(fā)器與存儲過程的唯一區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語句調(diào)用,而是在用戶執(zhí)行Transact-SQL語句時自動觸發(fā)執(zhí)行。此外觸發(fā)器是邏輯電路的基本單元電路,具有記憶功能,可用于二進制數(shù)據(jù)儲存,記憶信息等。觸發(fā)器有如下作用:

可在寫入數(shù)據(jù)表前,強制檢驗或轉(zhuǎn)換數(shù)據(jù)。

觸發(fā)器發(fā)生錯誤時,異動的結(jié)果會被撤銷。

部分數(shù)據(jù)庫管理系統(tǒng)可以針對數(shù)據(jù)定義語言(DDL)使用觸發(fā)器,稱為DDL觸發(fā)器。

可依照特定的情況,替換異動的指令 (INSTEAD OF)。

SQL Server 包括三種常規(guī)類型的觸發(fā)器:DML 觸發(fā)器、DDL 觸發(fā)器和登錄觸發(fā)器。(在邏輯電路中根據(jù)邏輯功能不同,可分為RS觸發(fā)器,D觸發(fā)器,同步觸發(fā)器等)

DML觸發(fā)器當數(shù)據(jù)庫中表中的數(shù)據(jù)發(fā)生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發(fā)器,那么該觸發(fā)器自動執(zhí)行。DML觸發(fā)器的主要作用在于強制執(zhí)行業(yè) 務規(guī)則,以及擴展Sql Server約束,默認值等。因為我們知道約束只能約束同一個表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意Sql命令。

DDL觸發(fā)器它是Sql Server2005新增的觸發(fā)器,主要用于審核與規(guī)范對數(shù)據(jù)庫中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時執(zhí)行,我們主要用它來記錄數(shù)據(jù)庫的修改過程,以及限制程序員對數(shù)據(jù)庫的修改,比如不允許刪除某些指定表等。

登錄觸發(fā)器登錄觸發(fā)器將為響應 LOGIN 事件而激發(fā)存儲過程。與 SQL Server 實例建立用戶會話時將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗證階段完成之后且用戶會話實際建立之前激發(fā)。因此,來自觸發(fā)器內(nèi)部且通常將到達用戶的所有消息(例如錯誤消息和來自 PRINT 語句的消息)會傳送到 SQL Server 錯誤日志。如果身份驗證失敗,將不激發(fā)登錄觸發(fā)器。

觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實現(xiàn)級聯(lián)更改,不過,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強制用比CHECK約束定義的約束更為復雜的約束。與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個表中的 SELECT 比較插入或更新的數(shù)據(jù),以及執(zhí)行其它操作,如修改數(shù)據(jù)或顯示用戶定義錯誤信息。觸發(fā)器也可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策。一個表中的多個同類觸發(fā)器(INSERT、UPDATE 或 DELETE)允許采取多個不同的對策以響應同一個修改語句。

約束和觸發(fā)器在特殊情況下各有優(yōu)勢。觸發(fā)器的主要好處在于它們可以包含使用 Transact-SQL 代碼的復雜處理邏輯。因此,觸發(fā)器可以支持約束的所有功能;但它在所給出的功能上并不總是最好的方法。實體完整性總應在最低級別上通過索引進行強制,這些索引或是 PRIMARY KEY 和 UNIQUE 約束的一部分,或是在約束之外獨立創(chuàng)建的。假設(shè)功能可以滿足應用程序的功能需求,域完整性應通過 CHECK 約束進行強制,而引用完整性(RI) 則應通過 FOREIGN KEY 約束進行強制。在約束所支持的功能無法滿足應用程序的功能要求時,觸發(fā)器就極為有用。例如:除非 REFERENCES 子句定義了級聯(lián)引用操作,否則 FOREIGN KEY 約束只能以與另一列中的值完全匹配的值來驗證列值。CHECK 約束只能根據(jù)邏輯表達式或同一表中的另一列來驗證列值。如果應用程序要求根據(jù)另一個表中的列驗證列值,則必須使用觸發(fā)器。約束只能通過標準的系統(tǒng)錯誤信息傳遞錯誤信息。如果應用程序要求使用(或能從中獲益)自定義信息和較為復雜的錯誤處理,則必須使用觸發(fā)器。觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實現(xiàn)級聯(lián)更改;不過,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以禁止或回滾違反引用完整性的更改,從而取消所嘗試的數(shù)據(jù)修改。當更改外鍵且新值與主鍵不匹配時,此類觸發(fā)器就可能發(fā)生作用。例如,可以在 titleauthor.title_id 上創(chuàng)建一個插入觸發(fā)器,使它在新值與 titles.title_id 中的某個值不匹配時回滾一個插入。不過,通常使用 FOREIGN KEY 來達到這個目的。如果觸發(fā)器表上存在約束,則在 INSTEAD OF 觸發(fā)器執(zhí)行后但在 AFTER 觸發(fā)器執(zhí)行前檢查這些約束。如果約束破壞,則回滾 INSTEAD OF 觸發(fā)器操作并且不執(zhí)行 AFTER 觸發(fā)器。觸發(fā)器到底可不可以在視圖上創(chuàng)建 在 SQL Server? 聯(lián)機叢書中,是沒有說觸發(fā)器不能在視圖上創(chuàng)建的, 并且在語法解釋中表明:在 CREATE TRIGGER 的 ON 之后可以是視圖。 然而,事實似乎并不是如此,很多專家也說觸發(fā)器不能在視圖上創(chuàng)建。我也專門作了測試,的確如此,不管是普通視圖還是索引視圖,都無法在上面創(chuàng)建觸發(fā)器,真的是這樣嗎?但是無可厚非的是:當在臨時表或系統(tǒng)表上創(chuàng)建觸發(fā)器時會遭到拒絕。深刻理解 FOR CREATE TRIGGER 語句的 FOR 關(guān)鍵字之后可以跟 INSERT、UPDATE、DELETE 中的一個或多個,也就是說在其它情況下是不會觸發(fā)觸發(fā)器的, 包括 SELECT、TRUNCATE、WRITETEXT、UPDATETEXT。相關(guān)內(nèi)容 一個有趣的應用我們看到許多注冊系統(tǒng)在注冊后都不能更改用戶名,但這多半是由應用程序決定的, 如果直接打開數(shù)據(jù)庫表進行更改,同樣可以更改其用戶名, 在觸發(fā)器中利用回滾就可以巧妙地實現(xiàn)無法更改用戶名……詳細內(nèi)容 觸發(fā)器內(nèi)部語句出錯時…… 這種情況下,前面對數(shù)據(jù)更改操作將會無效。舉個例子,在表中插入數(shù)據(jù)時觸發(fā)觸發(fā)器,而觸發(fā)器內(nèi)部此時發(fā)生了運行時錯誤,那么將返回一個錯誤值,并且拒絕剛才的數(shù)據(jù)插入。不能在觸發(fā)器中使用的語句 觸發(fā)器中可以使用大多數(shù) T-SQL 語句,但如下一些語句是不能在觸發(fā)器中使用的。CREATE 語句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。ALTER 語句,如:ALTER DATABASE、ALTER TABLE、ALTER INDEX 等。DROP 語句,如:DROP DATABASE、DROP TABLE、DROP INDEX 等。DISK 語句,如:DISK INIT、DISK RESIZE。LOAD 語句,如:LOAD DATABASE、LOAD LOG。RESTORE 語句,如:RESTORE DATABASE、RESTORE LOG。RECONFIGURETRUNCATE TABLE 語句在sybase的觸發(fā)器中不可使用!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

北京——2025年8月15日,亞馬遜云科技日前宣布,Amazon DocumentDB Serverless已正式可用,這是Amazon DocumentDB(兼容MongoDB)的一種全新配置,能夠根據(jù)應用程序需求自動...

關(guān)鍵字: 數(shù)據(jù)庫 服務器

濟南2025年8月12日 /美通社/ -- 近年來,國家大力推進信創(chuàng)產(chǎn)業(yè)發(fā)展,明確要求關(guān)鍵行業(yè)信息系統(tǒng)實現(xiàn) "自主可控、安全可靠",老年教育領(lǐng)域作為民生服務的重要陣地,其信息化建設(shè)的國產(chǎn)化適配已成為行...

關(guān)鍵字: 全棧 BSP 數(shù)據(jù)庫 加密

助力企業(yè)更快、更輕松地遷移VMware工作負載,無需重構(gòu)應用或變更架構(gòu)

關(guān)鍵字: 云服務 生成式AI 數(shù)據(jù)庫

在云計算與數(shù)據(jù)庫高可用場景中,LVM(Logical Volume Manager)的動態(tài)擴展能力已成為保障業(yè)務連續(xù)性的關(guān)鍵技術(shù)。某金融企業(yè)通過LVM在線擴容將數(shù)據(jù)庫停機時間從2小時縮短至30秒,但操作不當仍可能導致數(shù)據(jù)...

關(guān)鍵字: LVM 數(shù)據(jù)庫

北京 2025年7月10日 /美通社/ -- 全球向量數(shù)據(jù)庫的先行者Zilliz利用亞馬遜云科技的生成式AI技術(shù)與云服務,為全球企業(yè)及開發(fā)者提供高可擴展、安全穩(wěn)定的向量數(shù)據(jù)庫解決方案,助力企業(yè)全面釋放數(shù)據(jù)潛能。此外,依...

關(guān)鍵字: 亞馬遜 向量 數(shù)據(jù)庫 AI

n8n是一個連接API、數(shù)據(jù)庫和服務的開源工作流自動化平臺。實際上,它允許非程序員使用可視化界面構(gòu)建復雜的系統(tǒng),同時為開發(fā)人員提供強大且可擴展的自動化設(shè)計方法。它是部署AI代理、結(jié)合觸發(fā)器、語言模型(llm)和外部工具的...

關(guān)鍵字: n8n API 數(shù)據(jù)庫 ESP32

上海 2025年6月20日 /美通社/ -- 在2025亞馬遜云科技中國峰會上,全球知名的汽車制造商長城汽車宣布應用亞馬遜云科技Amazon Connect構(gòu)建全球聯(lián)絡中心,實現(xiàn)了全球客服從統(tǒng)一渠道、客戶投訴分級與跟進...

關(guān)鍵字: 亞馬遜 汽車 NEC 數(shù)據(jù)庫

或者,如果你是一家企業(yè),你在業(yè)務中使用某種工具的頻率是多少?操作那臺機器的費用是多少?敏感實驗室設(shè)備周圍的電壓有多穩(wěn)定?你所在位置接收到的電能質(zhì)量如何?例如,您可以使用這些信息來更好地估計產(chǎn)品成本,或者通過進行異常檢測或...

關(guān)鍵字: Web應用程序 樹莓派 數(shù)據(jù)庫

上?!?025年6月20日 在2025亞馬遜云科技中國峰會上,全球知名的汽車制造商長城汽車宣布應用亞馬遜云科技Amazon Connect構(gòu)建全球聯(lián)絡中心,實現(xiàn)了全球客服從統(tǒng)一渠道、客戶投訴分級與跟進、閉關(guān)管理到統(tǒng)計考...

關(guān)鍵字: 計算 存儲 數(shù)據(jù)庫

在現(xiàn)代軟件系統(tǒng)中,數(shù)據(jù)庫與緩存是兩個重要的組成部分。數(shù)據(jù)庫負責數(shù)據(jù)的持久化存儲,而緩存則用于加速數(shù)據(jù)訪問速度。然而,如何保證數(shù)據(jù)庫與緩存之間數(shù)據(jù)的一致性是一個具有挑戰(zhàn)性的問題。本文將探討數(shù)據(jù)庫與緩存數(shù)據(jù)一致性問題,并關(guān)注...

關(guān)鍵字: 緩存 數(shù)據(jù)庫
關(guān)閉