資料庫觸發
① sqlSERVER中觸發器的觸發類型有幾種
SQL SERVER中觸發器的觸發類型有三種。
1、DML觸發器,當資料庫中表中的數據發生變化時,包括insert,update,delete任意操作,如果對該表寫了對應的DML觸發器,那麼該觸發器自動執行。
2、DDL觸發器,是Sql Server2005新增的觸發器,主要用於審核與規范對資料庫中表,觸發器,視圖等結構上的操作。比如在修改表,修改列,新增表,新增列等。它在資料庫結構發生變化時執行,主要用它來記錄資料庫的修改過程,以及限製程序員對資料庫的修改。
3、登錄觸發器,登錄觸發器將為響應 LOGIN 事件而激發存儲過程。與 SQL Server 實例建立用戶會話時將引發此事件。登錄觸發器將在登錄的身份驗證階段完成之後且用戶會話實際建立之前激發。
(1)資料庫觸發擴展閱讀:
DML觸發器的主要作用在於強制執行業 務規則,以及擴展Sql Server約束,默認值等。因為我們知道約束只能約束同一個表中的數據,而觸發器中則可以執行任意Sql命令。
來自登錄觸發器內部且通常將到達用戶的所有消息(例如錯誤消息和來自 PRINT 語句的消息)會傳送到 SQL Server 錯誤日誌。如果身份驗證失敗,將不激發登錄觸發器。
觸發器可在寫入數據表前,強制檢驗或轉換數據。觸發器發生錯誤時,異動的結果會被撤銷。可依照特定的情況,替換異動的指令 (INSTEAD OF)。
② 資料庫觸發器是什麼
表可以有多個觸發器。CREATE
TRIGGER
語句可以與
FOR
UPDATE、FOR
INSERT
或
FOR
DELETE
子句一起使用,指定觸發器專門用於特定類型的數據修改操作。當指定
FOR
UPDATE
時,可以使用
IF
UPDATE
(column_name)
子句,指定觸發器專門用於具體某列的更新。
代碼是寫在資料庫裡面的,觸發器包含
Transact-SQL
語句,這與存儲過程十分相似。
如果你有安裝SQL
SEVER,那麼你可以在SQL
SEVER的幫助文檔里找到很多詳細的解析,打開查詢分析器按F1也可以打開SQL
SEVER的幫助文檔。
③ 資料庫中觸發器採用的什麼樣的原理
觸發器具有強大的功能,每個觸發器有插入和刪除兩個特殊的表,它有以下幾個特點:((1)這兩個表是邏輯表,並且是由系統管理的,存儲在內存中,不是存儲在資料庫中,因此不允許用戶直接對其修改。
(2)這兩個表的結構總是與被該觸發器作用的表有相同的表結構。
(3)這兩個表動態駐留在內存中,當觸發器工作完成時,這兩個表也被刪除。這兩個表主要保存因用戶操作而被影響到的原數據值或新數據值。
(4)這兩個表是只讀的,且只在觸發器內部可讀,即用戶不能向這兩個表寫入內容,但可以在觸發器中引用表中的數據。
對一個定義了插入類型觸發器的表來講,一旦對該表執行了插入操作,那麼對該表插入的所有行來說,都有一個相應的副本級存放到插入表中,即插入表就是用來存儲原表插入的新數據行。
對一個定義了刪除類型觸發器的表來講,一旦對該表執行了刪除操作,則將所有的被刪除的行存放至刪除表中。這樣做的目的是,一旦觸發器遇到了強迫它中止的語句被執行時,刪除的那些行可以從刪除表中得以還原。需要特別注意的是,更新操作包括兩個部分動作:先將舊的內容刪除,然後將新值插入。
因此,對一個定義了更新類型觸發器的表來講,當執行更新操作時,在刪除表中存放修改之前的舊值,然後在插入表中存放修改之後的新值。
觸發器對數據約束的原理是逐行檢查。當在數據表上執行插入、刪除和更新操作,觸發器將會被觸發執行時,每條SQL語句的操作哪怕隻影響資料庫中的一條記錄,其也會檢查此次操作對其他記錄的影響,會對表中的所有記錄按觸發器上所定義的約束進行全方位的檢查。
如果表中數據比較大,達到百萬級的情況,觸發器這個逐行檢查原理會嚴重影響系統的性能,因此在使用觸發器時需慎重評估其性能風險。
④ 資料庫 觸發器有什麼用
觸發器-從字面上理解就是某操作執行會觸發.
觸發器也是特殊的存儲過程,我的理解就是提高數據的完整性.舉個簡單的例子,一這學生表裡有這個學生的學號,姓名,另一張學生的選課表,如果用戶修改了學生表中的學生姓名,那麼學生選課表中的學生姓名也要修改過來..如果在資料庫中建立一個這修改的觸發器,那麼
這個不再手動修改,否則選課表中的姓名要手工修改..
⑤ 資料庫觸發器
觸發器通常在進行登錄或者對表作修改時觸發,可以作為登錄驗證或者數據監控。換句話說,觸發器是用來管理資料庫的,很少用來操作數據。比如,我要知道誰在什麼時候修改了Test表,修改了什麼,就要使用觸發器了。
⑥ 在資料庫里怎麼使用觸發器
觸發器是一類特殊的存儲過程,開發人員也可以定義、編寫符合業務需求的觸發器來維護數據的完整性。觸發器的控制流程及控制語句與存儲過程相同,但觸發器與存儲過程還是有相當大的差別,觸發器的定義格式及開啟方式與存儲過程不同,作為數據管理員或編程人員,熟練掌握觸發器的用法對維護、操作資料庫非常重要。基本語法1.創建觸發器語法格式創建語法:CREATETRIGGER+觸發器名稱+觸發時間點+觸發事件+ON+表名+FOREACHROWBEGIN…END其中,觸發時間點:BEFORE或AFTER,指明是在觸發事件之前還是之後執行。
觸發事件:INSERT、UPDATE、DELETE事件。例如,以下語句創建一個名字叫upd_check的觸發器,其在對account表作更新(UPDATE)操作之前(BEFORE)自動觸發。
CREATETRIGGERupd_…END2.刪除觸發器語法格式DROPTRIGGER+觸發器名稱3.觸發器案例用tab.sql腳本創建表環境,然後用下面語句創建觸發器。當往tab1表添加記錄後將觸發此觸發器,將此新記錄同時插入tab2表中。
DELIMITER//DROPTRIGGERIFEXISTSt_afterinsert_on_tab1;CREATETRIGGERt_afterinsert_on_(tab2_id)values(new.tab1_id);END;//DELIMITER;當用下面語句往tab1表插入記錄時,tab2表中同時也添加了同樣的記錄,如圖tab1數據表
tab1數據表
tab2數據表
INSERTINTOtab1(tab1_id)values(')
tab.sql
⑦ 資料庫中的「觸發器」是什麼意思
觸發器的概念:
觸發器英文名trigger,是指資料庫中為響應一個特殊表格中的某些事件而自動執行的程序代碼。
為什麼要使用觸發器:
觸發器通常在進行登錄或者對表作修改時觸發,可以作為登錄驗證或者數據監控。換句話說,觸發器是用來管理資料庫的,很少用來操作數據。比如,我要知道誰在什麼時候修改了Test表,修改了什麼,就要使用觸發器了。
⑧ 資料庫中觸發器重要的功能是什麼
數據審計是觸發器的重要功能,其作用是跟蹤數據的變化過程,審核操作的合法性與合理性,如果觸發不合法的操作,可依據審計的記錄把數據恢復到原來的狀態。
數據審計業務一般由兩個數據表構成,一個是業務表,普通用戶可以擁有此表讀寫許可權;
一個是審計表,普通用戶不擁有此表讀寫許可權,只有超級用戶才擁有此表讀寫許可權,用於記錄數據的變化過程。下面以一個案例的方式來說明數據審計的過程和作用。
有一個存儲車輛收費信息表t_car,表結構如圖車輛收費信息表結構所示,因業務要求,程序要有對該表的數據修改許可權,為此需要審計對該表上數據的記錄值修改信息,以備查詢、跟蹤。
車輛收費信息表結構
有一個審計表t_record,表結構如圖審計表結構所示,要記錄對車輛收費信息表的修改行為的所有信息,以供事後進行審計,判斷操作行為是否合法。
審計表存儲的內容有修改前pay欄位的值、修改後pay欄位的值、記錄被修改的時間、登錄資料庫伺服器修改數據的ip地址、登錄資料庫伺服器的賬號信息。
審計表結構
((1)用audit.sql腳本初始化數據表環境,然後使用觸發器記錄所有用戶對表t_car進行UPDATE操作修改數據的行為。觸發器代碼如下:DELIMITER//DROPTRIGGERIFEXISTStri_t_car;CREATETRIGGERtri_t_carBEFOREUPDATEONt_carFOREACHROWBEGINIFNEW.pay<>OLD.payTHENINSERTINTOt_record(username
⑨ 資料庫中觸發器的作用是什麼
觸發器是資料庫提供給程序員和數據分析員來保證數據完整性的一種機制,它是一種與數據表事件相關的特殊的存儲過程。觸發器的執行不是由程序調用,也不需要手工開啟,而是由數據表上的事件來觸發,當用戶對一個數據表進行增、刪、改操作時就會激活它執行。
觸發器可以查詢其他表,而且可以包含復雜的SQL語句。它們主要用於強制服從復雜的業務規則或要求。觸發器也可用於強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關系。
觸發器功能強大,可以輕松可靠地實現許多復雜的功能,但也不能過於依賴觸發器,濫用觸發器會造成關系資料庫及應用程序維護困難,性能、效率低下等問題的產生,在實際問題中,要根據實際需要選擇合適的解決方案。觸發器是一種特殊的存儲過程,在插入、刪除、修改特定表中的數據時觸發執行,擁有比資料庫本身更強大的數據控制能力,其作用有以下四大方面。
1.數據安全數據安全主要是指對信息系統中的業務數據提供一種數據變更的審核機制,當其通過安全策略的審核後,允許用戶變更相關數據,否則直接拒絕數據變更的請求。
安全原理:基於資料庫的值使用戶具有操作資料庫的某種權利。
((1)可以基於時間限制用戶的操作。例如,不允許下班後和節假日修改資料庫數據。
(2)可以基於資料庫中的數據限制用戶的操作。例如,不允許股票價格的升幅一次超過10%。
2.數據審計數據審計主要是指對數據伺服器上的記錄進行變更時的一種用戶許可權的即時審查與用戶行為的全方位記錄,以便事後對數據變更過程的追溯,保證數據變更的合法性。
審計原理:跟蹤用戶對資料庫的操作。
((1)審計用戶操作資料庫的語句。
(2)把用戶對資料庫的更新寫入審計表。
3.數據約束數據約束是指對用戶的操作行為將導致業務數據與實際情況相悖的行為進行檢查約束,而不讓其發生,從而保證數據的完整性與一致性。
約束原理:對用戶操作與實際邏輯的約束檢查。
((1)實現數據完整性檢查和約束。例如,回退任何企圖買進超過自己資金的貨物。
(2)提供可變的預設值。
4.數據連環更新數據連環更新是指當對數據進行更新操作時,將所有與此數據相關聯的數據作聯合的更新操作,以保證數據的完整性與一致性。
連環更新原理:對關聯數據作聯合更新操作。
((1)修改或刪除時級聯修改或刪除其他表中與之匹配的行。
(2)修改或刪除時把其他表中與之匹配的行設成NULL值。
(3)修改或刪除時把其他表中與之匹配的行級聯設成預設值。
⑩ 資料庫觸發器有什麼作用
觸發器的作用:
自動計算數據值,如果數據的值達到了一定的要求,則進行特定的處理。
同步實時地復製表中的數據。
實現復雜的非標準的資料庫相關完整性規則。
可在寫入數據表前,強制檢驗或轉換數據。
觸發器發生錯誤時,異動的結果會被撤銷。
部分資料庫管理系統可以針對數據定義語言(DDL)使用觸發器,稱為DDL觸發器。
可依照特定的情況,替換異動的指令 (INSTEAD OF)。
(10)資料庫觸發擴展閱讀:
分類
SQL Server 包括三種常規類型的觸發器:DML 觸發器、DDL 觸發器和登錄觸發器。
DML觸發器
當資料庫中表中的數據發生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發器,那麼該觸發器自動執行。
DML觸發器的主要作用在於強制執行業 務規則,以及擴展Sql Server約束,默認值等。因為我們知道約束只能約束同一個表中的數據,而觸發器中則可以執行任意Sql命令。
DDL觸發器
它是Sql Server2005新增的觸發器,主要用於審核與規范對資料庫中表,觸發器,視圖等結構上的操作。比如在修改表,修改列,新增表,新增列等。
它在資料庫結構發生變化時執行,我們主要用它來記錄資料庫的修改過程,以及限製程序員對資料庫的修改,比如不允許刪除某些指定表等。
登錄觸發器
登錄觸發器將為響應 LOGIN 事件而激發存儲過程。與 SQL Server 實例建立用戶會話時將引發此事件。登錄觸發器將在登錄的身份驗證階段完成之後且用戶會話實際建立之前激發。
因此,來自觸發器內部且通常將到達用戶的所有消息(例如錯誤消息和來自 PRINT 語句的消息)會傳送到 SQL Server 錯誤日誌。如果身份驗證失敗,將不激發登錄觸發器。
參考資料來源:網路-觸發器