定義
重點學習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