數據庫 觸發器


定義


重點學習DML觸發器

DML觸發器

分類

觸發器工作原理

這兩個表示系統在線生成的、動態駐留在內存中的臨時表,是由系統管理的邏輯表。這兩個表的結構總是與被該觸發器作用的表的結構相同。對於這兩個表,用戶只有讀取的權限,沒有修改的權限。 這兩個表的表結構與觸發器所在數據表的結構是完全一致的。當觸發器的工作完成之后,這兩個表也將會從內存中刪除

insert delect update觸發器的工作原理



創建觸發器

注意事項

代碼例子

rollback為回滾操作 raiserror為拋出異常操作

已知Modify_amount表中包含以下字段:工程項目號、搶修物資號、操作時間、修改前的領取數量、修改后的領取數量。請建立該表,並創建一個觸發器trg_Update_OutStock,實現以下應用:當修改Out_Stock表中的amount字段后,自動在數量變化表Modify_amount中增加一行記錄。請修改Out_Stock表中某條記錄的amount值進行驗證觀察。
創建表

create table Modify_amount(
	prj_num char(8),
	mat_num char(4),
	get_date smalldatetime,
	Before_amount tinyint,
	After_amount tinyint,
	primary key(prj_num,mat_num)
)

創建觸發器
用到了update時,被更新的數據保存在deleted的幻表中,更新的數據保存在inserted的幻表中的知識.

create trigger trg_Update_OutStock
on Out_Stock
after update
as 
begin
	declare @n1 char(8)
	select @n1=inserted.prj_num from inserted
	declare @n2 char (4)
	select @n2=inserted.mat_num from inserted
	declare @n3 smalldatetime 
	select @n3=inserted.get_date from inserted
	declare @n4 tinyint
	select @n4=deleted.amount from deleted
	declare @n5 tinyint
	select @n5=inserted.amount from inserted
	insert into Modify_amount(prj_num,mat_num,get_date,Before_amount,After_amount)
	values (@n1,@n2,@n3,@n4,@n5)
end

使用觸發器的好處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM