當前位置:首頁 » 操作系統 » 資料庫表的觸發器

資料庫表的觸發器

發布時間: 2023-03-28 15:50:38

『壹』 資料庫中觸發器是什麼

資料庫 觸發器有什麼用
觸發器

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

然後,觸發器的觸發條件其實在你定義的時候就已經設定好的了。這裡面需要說明一下,觸發器可以分為語句級觸發器和行級觸發器。詳細的介紹可以參考網上的資料,簡單的說就是語句級的觸發器可以在某些語句執行前或執行後被觸發。而行級觸發器則是在定義的了觸發的表中的行數據改變時就會被觸發一次。

具體舉例:

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

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

觸發器簡介:

觸發器是一種特殊類型的過程。與普通過程不同的是,過程需要用戶顯式地調用才執行,而觸發器則是當某些事件發生時,由Oracle自動執行。

觸發器主要由如下幾個部分組成:

觸發事件:

觸發條件:

觸發對象:

觸發操作:

編寫觸發器時,需要注意以下幾點:

觸發器不接受參數。

一個表上最多可以有12個觸發器,但同一時間、同一事件、同一類型的觸發器只能有一個。還需要注意,各個觸發器之間不能有矛盾。

在一個表上的觸發器越多,對在該表上的DML操作性能影響就越大。

觸戚氏發器最大為32KB。如果確實需要,可以先建立過程,然後在觸發器中用CALL語句調用。

在DML觸發器中只能使用DML語句(select,insert,update,delete)。

在系統觸發器中只能包含DDL語句(create,alter,drop)。

觸發器中不能包含事務控制語句(mit,rollback,savepoint)。因為觸發器是觸發語句的一部門,觸發語句被提交或回退時,觸發器也就被提交或回退了。

在觸發器主體中調用的任何過程、函數都不能使用事務控制語句。

在觸發器主體中不能聲明任何long和blob變數。新值new、舊值old也不能指向表中的任何long和blog列

不同類型的觸發器(如DML觸發器、INSTEAD OF觸發器、系統觸發器)的語法格式和作用都有較大區別。
sql中,觸發器是什麼?
1、觸發器。 定義: 何為觸發器?在SQL Server裡面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。 常見的觸發器有三種:分別應用於枝或Insert , Update , Delete 事件。(SQL Server 2000定義了新的觸發器,這里不提) 我為什麼要使用觸發器?比如,這么兩個表: Create Table Student( --學生表 StudentID int primary key, --學號 .... ) Create Table BorrowRecord( --學生借書記錄表 BorrowRecord int identity(1,1), --流水號 StudentID int , --學號 BorrowDate datetime, --借出時間 ReturnDAte Datetime, --歸還時間 ... ) 用到的功能有: 1.如果我更改了學生的學號,我希望他的借書記錄仍然與這個學生相關(也就是同時更改借書記猛仔伍錄表的學號); 2.如果該學生已經畢業,我希望刪除他的學號的同時,也刪除它的借書記錄。 等等。 這時候可以用到觸發器。對於1,創建一個Update觸發器: Create Trigger truStudent On Student for Update ------------------------------------------------------- --Name:truStudent --func:更新BorrowRecord 的StudentID,與Student同步。 --Use :None --User:System --Author: 懶蟲 # SapphireStudio ( chair3) --Date : 2003-4-16 --Memo : 臨時寫寫的,給大家作個Sample。沒有調試阿。 ------------------------------------------------------- As if Update(StudentID) begin Update BorrowRecord Set br.StudentID=i.StudentID From BorrowRecord br , Deleted d ,Inserted i Where br.StudentID=d.StudentID end 理解觸發器裡面的兩個臨時的表:Deleted , Inserted 。注意Deleted 與Inserted分別表示......>>
請問資料庫 觸發器有什麼用
我就給你解釋一下實際場景吧

比如你有兩個表 A 和 B

A表有ID 和 NAME兩列

B表有ID,PLAY,NAMEID三列,A與B沒有關聯

如果你想刪除B表的內容,但是又同時想刪除A表中A.ID=B.NAMEID

那麼你就要寫兩條語句

如果使用觸發器

就只用寫刪除B表的內容語句,一旦刪除內容,則觸發器設定的表規則被觸發,那麼A表的相關內容也一起刪除了
SQL中觸發器有什麼作用
當你對表進行了添刪改查等操作時,如果你需要做一些特定的業務操作,就可以使用觸發器。

顧名思義,觸發,當你做了某種預設的操作時才會執行觸發器的命令

舉個例子。。

假設你有個員工基礎信息表,裡面有員工的身份證號碼,手機等基本信息。。

那麼,當你換了身份證或手機,需要修改號碼的時候,肯定是去修改員工的基礎資料表。

假設你現在有別的地方,比如人事檔案啊之類的,同樣使用了員工的手機等信息。。難道你還要再去修改一次檔案表么。。那麼如果還有其他地方使用了呢?

而觸發器就可以在這種時候做出判斷,如果修改了基礎表的信息,那麼就同步把其他使用了基礎表信息的地方也更改成最新的信息。。

大概就是這么個意思。。當然還有其他的作用
資料庫中替代觸發器的定義是什麼 5分
(1)DML觸發器:是指觸發器在資料庫中發生數據操作語言(DML)事件時將啟用。DML事件即指在表或視圖中修改數據的insert、update、delete語句也。 (2)DDL觸發器:是指當伺服器或資料庫中發生數據定義語言(DDL)事件時將啟用。DDL事件即指在表或索引中...
資料庫中的觸發器重點在什麼地方?
簡單來講哪就是事件觸發。

比如你對資料庫中的表進行了一個插刪等操作,你想在你即將做或者完成這個操作的時候程序能自動做一點別的工作,比如你想對插入數據檢查一下或者對刪除後的數據總數進行一下統計。

本來哪,你可以把這個工作寫在自己的程序里,就是把檢查寫在你插入動作之前或者把統計數目寫在刪除動作之後。這樣的問題是:你要做插刪的時候就都要寫這些代碼,而且很容易就遺漏了。

而觸發器哪,你定義在某個操作上,比如把那個檢查的工作過程定義成插入的前觸發器,把統計工作定義成後觸發器,那麼在你進行插入刪除的時候,資料庫那邊的程序就自動的給你做了這個工作了。

主要作用哪:我感覺

一是完整性(防止自己編程的遺漏),

二是簡單,

三是由資料庫程序(比如Oracle)進行這項工作,而不是由你自己的程序做,效率高。

下面是人家的一些教程,其實道理是很簡單的。你可以用它後面講的幾個資料庫的例子,自己寫一個,試試就知道了。

————————————————————————————————————————

一 觸發器介紹

觸發器是一種特殊的存儲過程,它在插入,刪除或修改特定表中

的數據時觸發執行,它比資料庫本身標準的功能有更精細和更復雜的

數據控制能力。資料庫觸發器有以下的作用:

* 安全性。可以基於資料庫的值使用戶具有操作資料庫的某種權

利。

# 可以基於時間限制用戶的操作,例如不允許下班後和節假日

修改資料庫數據。

# 可以基於資料庫中的數據限制用戶的操作,例如不允許股票

的價格的升幅一次超過10%。

* 審計。可以跟蹤用戶對資料庫的操作。

# 審計用戶操作資料庫的語句。

# 把用戶對資料庫的更新寫入審計表。

* 實現復雜的數據完整性規則。

# 實現非標準的數據完整性檢查和約束。觸發器可產生比規則

更為復雜的限制。與規則不同,觸發器可以引用列或資料庫對

象。例如,觸發器可回退任何企圖吃進超過自己保證金的期貨。

# 提供可變的預設值。

* 實現復雜的非標準的資料庫相關完整性規則。觸發器可以對數

據庫中相關的表進行連環更新。例如,在auths表author_code列上的

刪除觸發器可導致相應刪除在其它表中的與之匹配的行。

# 在修改或刪除時級聯修改或刪除其它表中的與之匹配的行。

# 在修改或刪除時把其它表中的與之匹配的行設成NULL值。

# 在修改或刪除時把其它表中的與之匹配的行級聯設成預設值。

# 觸發器能夠拒絕或回退那些破壞相關完整性的變化,取消試

圖進行數據更新的事務。當插入一個與其主健不匹配的外部鍵

時,這種觸發器會起作用。例如,可以在books.author_code

列上生成一個插入觸發器,如果新值與auths.author_code列

中的某值不匹配時,插入被回退。

* 同步實時地復製表中的數據。

* 自動計算數據值,如果數據的值達到了一定的要求,則進行特

定的處理。例如,如果公司的帳號上的資金低於5萬元則立即給財務人

員發送警告數據。

ORACLE與SYBASE資料庫的觸發器有一定的區別,下面將分別講述

這兩種資料庫觸發器的作用和寫法。

二 ORACLE 觸發器

ORACLE產生資料庫觸發器的語法為......>>
資料庫觸發器中new表和old表是什麼意思?
顧名思義,new是新插入的數據,old是原來的數據

insert只會有new,代表著要插入的新記錄

delete只會有old,代表著要刪除的記錄

update由於執行的是先刪除舊的記錄,再插入新的記錄,因此new和old都會有,且含義與上面的相同
SQL資料庫中的觸發器怎麼寫啊?急
CREATE TRIGGER trig_stu_update ON student

FOR UPDATE

AS

begin

end;

CREATE TRIGGER trig_stu_delete O功 student

FOR DELETE

AS

begin

end;

------------------

上面是更新、刪除的觸發器模板,將你的代碼填在begin...end之間。

觸發器中經常用到的inserted,deleted。

inserted裡面存放了insert、update操作的插入值或更新後值。

deleted里存放的是update、delete操作的更新前值或刪除值。

使用方法:

declare @no int,@sex bit,@age int;

--insert、update取新值

select @no=no,@sex=sex,@age=age from inserted;

--delete、update刪除值

select @no=no,@sex=sex,@age=age from deleted;
sql的觸發器是干什麼的,怎麼用?
觸發器的主要作用是,實現由主鍵和外鍵所不能保證的復雜的參照完整性和數據一致性。

例如我們日常生活中常用的銀行存儲系統就應用了觸發器機制:當我們在銀行辦理存款或是取款業務後,系統除了會記錄我們的交易信息外,還會根據我們存入或取出的金額自動更新我們帳戶的余額(存款操作後增加帳戶余額,取款操作後減少帳戶余額),當操作中出現意外情況(如斷電),系統還會回滾我們所做的操作,以保證交易的完整性。

所以觸發器是在對表進行插入、更新和刪除操作時自動執行的存儲過程,同時它也具有事務的功能(整個操作要麼全部成功,要麼全部失敗)。

『貳』 SQL中的「觸發器」是什麼

觸發器是對表進行插入、更新、刪除的時候會自動執行的特殊存儲過程。x0dx0ax0dx0a觸發器一般用在check約束更加復雜的約束上面。例如在執行update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。x0dx0ax0dx0aSQL Server 2005中觸發器可以分為兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種數據定義語言語句而激發,這些語句有create、alter、drop語句。 x0dx0ax0dx0a DML觸發器分為: x0dx0a 1、 after觸發器(之後觸發) x0dx0a a、 insert觸發器 x0dx0a b、 update觸發器 x0dx0a c、 delete觸發器 x0dx0a 2、 instead of 觸發器 (之前觸發) x0dx0ax0dx0a其中after觸發器要求只有執行某一操作insert、update、delete之後觸發器才被觸發,且只能定義在表上。而instead of觸發器表示並不執行其定義的操作(insert、update、delete)而僅是執行觸發器本身。既可以在表上定義instead of觸發器,也可以在視圖上定義。 x0dx0ax0dx0a觸發器有兩個特殊的表:插入表(instered表)和刪除表(deleted表)。這兩張是邏輯表也是虛表。有系統在內存中創建者兩張表,不會存儲在資料庫中。而且兩張表的都是只讀的,只能讀取數據而不能修改數據。這兩張表的結果總是與被改觸發器應用的表的結構相同。當觸發器完成工作後,這兩張表就會被刪除。Inserted表的數據是插入或是修改後的數據,而deleted表的數據是更新前的或是刪除的數據。x0dx0ax0dx0aUpdate數據的時候就是先刪除表記錄,然後增加一條記錄。這樣在inserted和deleted表就都有update後的數據記錄了。注意的是:觸發器本身就是一個事務,所以在觸發器裡面可以對修改數據進行一些特殊的檢查。如果不滿足可以利用事務回滾,撤銷操作。

『叄』 資料庫觸發器是什麼

觸發器是一類特殊的存儲過程,被定義為在對表或視圖發出 UPDATE、INSERT 或 DELETE 語句時自動執行。觸發器是功能強大的工具,使每個站點可以在有數據修改時自動強制執行其業務規則。觸發器可以擴展 SQL Server 約束、默認值和規則的完整性檢查邏輯,但只要約束和默認值提供了全部所需的功能,就應使用約束和默認值。

表可以有多個觸發器。CREATE TRIGGER 語句可以與 FOR UPDATE、FOR INSERT 或 FOR DELETE 子句一起使用,指定觸發器專門用於特定類型的數據修改操作。當指定 FOR UPDATE 時,可以使用 IF UPDATE (column_name) 子句,指定觸發器專門用於具體某列的更新。

代碼是寫在資料庫裡面的,觸發器包含 Transact-SQL 語句,這與存儲過程十分相似。

如果你有安裝SQL SEVER,那麼你可以在SQL SEVER的幫助文檔里找到很多詳細的解析,打開查詢分析器按F1也可以打開SQL SEVER的幫助文檔。

示例
下例首先創建一個觸發器,當用戶在表 roysched 中添加或更改數據時,該觸發器向客戶端列印一條用戶定義消息。然後,使用 ALTER TRIGGER 語句使該觸發器僅對 INSERT 活動有效。該觸發器有助於提醒向表中插入行或更新行的用戶及時通知書的作者和出版商。

USE pubs
GO
CREATE TRIGGER royalty_reminder
ON roysched
WITH ENCRYPTION
FOR INSERT, UPDATE
AS RAISERROR (50009, 16, 10)

-- Now, alter the trigger.
USE pubs
GO
ALTER TRIGGER royalty_reminder
ON roysched
FOR INSERT
AS RAISERROR (50009, 16, 10)

『肆』 資料庫觸發器是什麼

表可以有多個觸發器。CREATE
TRIGGER
語句可以與
FOR
UPDATE、FOR
INSERT

FOR
DELETE
子句一起使用,指定觸發器專門用於特定類型的數據修改操作。當指定
FOR
UPDATE
時,可以使用
IF
UPDATE
(column_name)
子句,指定觸發器專門用於具體某列的更新。
代碼是寫在資料庫裡面的,觸發器包含
Transact-SQL
語句,這與存儲過程十分相似。
如果你有安裝SQL
SEVER,那麼你可以在SQL
SEVER的幫助文檔里找到很多詳細的解析,打開查詢分析器按F1也可以打開SQL
SEVER的幫助文檔。

『伍』 資料庫中觸發器的作用是什麼

觸發器是資料庫提供給程序員和數據分析員來保證數據完整性的一種機制,它是一種與數據表事件相關的特殊的存儲過程。觸發器的執行不是由程序調用,也不需要手工開啟,而是由數據表上的事件來觸發,當用戶對一個數據表進行增、刪、改操作時就會激活它執行。

觸發器可以查詢其他表,而且可以包含復雜的SQL語句。它們主要用於強制服從復雜的業務規則或要求。觸發器也可用於強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關系。

觸發器功能強大,可以輕松可靠地實現許多復雜的功能,但也不能過於依賴觸發器,濫用觸發器會造成關系資料庫及應用程序維護困難,性能、效率低下等問題的產生,在實際問題中,要根據實際需要選擇合適的解決方案。觸發器是一種特殊的存儲過程,在插入、刪除、修改特定表中的數據時觸發執行,擁有比資料庫本身更強大的數據控制能力,其作用有以下四大方面。

1.數據安全數據安全主要是指對信息系統中的業務數據提供一種數據變更的審核機制,當其通過安全策略的審核後,允許用戶變更相關數據,否則直接拒絕數據變更的請求。

安全原理:基於資料庫的值使用戶具有操作資料庫的某種權利。

((1)可以基於時間限制用戶的操作。例如,不允許下班後和節假日修改資料庫數據。

(2)可以基於資料庫中的數據限制用戶的操作。例如,不允許股票價格的升幅一次超過10%。

2.數據審計數據審計主要是指對數據伺服器上的記錄進行變更時的一種用戶許可權的即時審查與用戶行為的全方位記錄,以便事後對數據變更過程的追溯,保證數據變更的合法性。

審計原理:跟蹤用戶對資料庫的操作。

((1)審計用戶操作資料庫的語句。

(2)把用戶對資料庫的更新寫入審計表。

3.數據約束數據約束是指對用戶的操作行為將導致業務數據與實際情況相悖的行為進行檢查約束,而不讓其發生,從而保證數據的完整性與一致性。

約束原理:對用戶操作與實際邏輯的約束檢查。

((1)實現數據完整性檢查和約束。例如,回退任何企圖買進超過自己資金的貨物。

(2)提供可變的預設值。

4.數據連環更新數據連環更新是指當對數據進行更新操作時,將所有與此數據相關聯的數據作聯合的更新操作,以保證數據的完整性與一致性。

連環更新原理:對關聯數據作聯合更新操作。

((1)修改或刪除時級聯修改或刪除其他表中與之匹配的行。

(2)修改或刪除時把其他表中與之匹配的行設成NULL值。

(3)修改或刪除時把其他表中與之匹配的行級聯設成預設值。

『陸』 資料庫觸發器有什麼作用

觸發器的作用:

自動計算數據值,如果數據的值達到了一定的要求,則進行特定的處理。

同步實時地復製表中的數據。

實現復雜的非標準的資料庫相關完整性規則。

可在寫入數據表前,強制檢驗或轉換數據。

觸發器發生錯誤時,異動的結果會被撤銷。

部分資料庫管理系統可以針對數據定義扒棚喚語言(DDL)使用觸發器,稱為DDL觸發器。

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


(6)資料庫表的觸發器擴展閱讀:

分類

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

DML觸發器

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

DML觸發器的主要作用在於強制執行業 務規則,以及擴展Sql Server約束,默認值等。因為我們知道約束只能約和和束同一個表中的數據,而觸發器中則可以執行任意Sql命令。

DDL觸發器

它是Sql Server2005新增的觸發器,主要用於審核與規范對資料庫中表,觸發器,視圖等結構上的操作。比如在修改表,修改列,新增表,新增列等。

它在資料庫結構發生變化時執行,我們主要用它來記錄資料庫的修改過程,以及限製程序員對資料庫的修改,比如不允許刪除某些指定表等。

登錄觸發器

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

因此,來自觸發器內部且通常將到達用戶的所有消息(例如錯誤消息和來自 PRINT 語句的消息)會傳送到 SQL Server 錯誤日誌。如果身份驗證失敗,將不激發登春凱錄觸發器。

參考資料來源:網路-觸發器

『柒』 在資料庫里怎麼使用觸發器

觸發器是一類特殊的存儲過程,開發人員也可以定義、編寫符合業務需求的觸發器來維護數據的完整性。觸發器的控制流程及控制語句與存儲過程相同,但觸發器與存儲過程還是有相當大的差別,觸發器的定義格式及開啟方式與存儲過程不同,作為數據管理員或編程人員,熟練掌握觸發器的用法對維護、操作資料庫非常重要。基本語法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

熱點內容
話嘮安卓哪裡下載 發布:2025-05-19 20:27:04 瀏覽:164
瘋狂android講義光碟 發布:2025-05-19 20:12:31 瀏覽:152
安卓手機怎麼下載圈點 發布:2025-05-19 20:08:11 瀏覽:473
文件夾粉碎不了 發布:2025-05-19 20:05:41 瀏覽:242
安卓怎麼把軟體放進全局 發布:2025-05-19 20:03:55 瀏覽:688
安卓手機如何看最真實的型號 發布:2025-05-19 19:58:59 瀏覽:10
U盤超級加密2008 發布:2025-05-19 19:44:32 瀏覽:455
燈帶編程軟體 發布:2025-05-19 19:32:30 瀏覽:288
如何判斷伺服器被多少人訪問 發布:2025-05-19 19:27:45 瀏覽:126
編程stata 發布:2025-05-19 19:12:18 瀏覽:517