触发器是一种特殊的存储过程,
2.触发器是在对表进行插入、更新或删除操作时自动执行的存储过程
3.触发器通常用于强制业务规则
4.触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束
5.可执行复杂的SQL语句(if/while/case)
DELETE 触发器
INSERT 触发器
UPDATE 触发器
/*----------Insert 插入 触发器------------*/
Create Trigger Tri_insert
on students /*针对某个表,触发器是建立在表关系上的*/
for insert /*采用的是哪种触发器*/
as
declare @stu_id int;
declare @stu_score varchar(200);
select @stu_id=s_id from inserted /*这里的Inserted 是在创建触发器时候 系统自动创建的内存表*/
insert into student_Score(s_id,ss_score)values(@stu_id,'100')
go
--就是插一条数据进入students中,Tri_insert触发器就会自动在student_Score插入相关的学生的一条分数的数据
insert into students(s_name,s_classId) values('黄驰',6)
select * from student_Score
MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地
如果是mssql server,在企业管理器里,右键表名,然后自己看
存储过程可以直接用sql语句创建,触发器可以在表修改中创建
Create Procedure name
As
(1).存储过程:
create procedure for_select(你想用的触发器名字)
delare @name char(8) output(用于输出的),@age int output(用于输出),@phone_num char(11) (输入)
as
select @name=name(列名),@age=age(列名) from table_name(表名)
where phone_num(列名)=@phone_num
(2)触发器
create tigger for_update
on table_name
after update
as
if(update(phone_num))
update table_name2
set phone_num=i.phone_num
from deleted d,inserted i
where table_name.phone_num=d.phone_num
end
其中:deleted与inserted是sql中默认的临时表。用来储存原来的值和插入的值。本触发器的作用是 当更新table_name 中的phone_num时table_name1中的phone_num也一起更新!注意触发器只能用于update.insert.delete.select中不能用于创建表............