存储过程:就像函数一样的
会保存在数据库中--》可编程性--》存储过程
创建存储过程: 保存在数据库表,可编程性,存储过程
create proc jiafa
--需要的参数
@a int,
@b int
as
--存储过程内容
declare @c int;
set @c =@a + @b;
return @c;
go
相当于一个函数
public int 函数名 (变量1,变量2)
{
函数语句
return int c
}
存储之后可以直接调用,
执行存储过程
exec 存储名
有返回值时
declare @f int;
exec @f= jiafa 3,5;
print @f;
--例:在CAR表中查询对应种类的车辆数目
--存储过程
creat proc ChaXun
@n varchar(20)
as
declare @num int
select @num=coount(*) from car where name like '%'+@n+'%'
go
--调用方法
declare @m int
exec @m=ChaXun '奥迪'
print @m
触发器:
是一个特殊的存储过程;
通过增删改查的动作来触发执行,没有参数,没有返回值;
存储位置在要执行的表的下拉列表中
不去触发不执行,满足条件之后执行,相当于HTML中的事件
create trigger 触发器名称
Insert_Student --命名规范 动作_要执行的表名 为了以后更容易的了解触发器要使用的情况
on Student --针对于那张表
for insert --针对于那个动作来触发
--onclick= "show()"
as
触发器要执行的代码
go
1、for的意思是在动作执行之后触发
2、instead of delete 的意思是删除之前的引发,可以理解为替代,写了这个之后写的代码就没有用了,就被触发器的代码覆盖了
删除存在外键的表的内容时,需要先删除外键连接的表的内容
create trigger Delete_info
on inf0
instead of delete
as
declare @c varchar(20)
select @c =Code from deleted
delete from work where infocode=@c
delete from family where infocode=@c
delete from info where code=@c
go
instead of的使用比for的频繁
面试过程中问的比较多,但实际工作是用的比较少