数据库 触发器


定义


重点学习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