存储过程优点:执行速度更快,允许模块化程序设计,提高系统安全性,防止SQL注入,减少网络流通量。系统存储过程一般以sp或xp组成
create proc 存储过程名
[定义变量/参数,可以不用写declare]
as
begin
......
end
通常数据库的存储过程里一边都要加事务。
事务:(原子性,一致性,隔离性)
begin tran --打开一个事务
declare @sum int=0
修改语句1
set @sum=@sum+@@error
修改语句2
set @sum=@sum+@@error
.......
if(@sum<>0)
begin
rollback --如果出错,则回滚事务
end
else
begin
commit tran --如果没有发生错误,提交事务
end
//这段代码是放在存储过程里的begin和end代码之间的
调用存储过程:exec 存储过程名(无参数存储过程)
有参数的存储过程两种调用法:
EXEC usp_upGrade2 60,55 ---按次序
EXEC usp_upGrade2 @english=55,@math=60 --参数名
调用有返回值的存储过程
declare @val int
exec usp_aaa @n2=1000,@sum=@val output
output--在调用的时候也得加output关键字
print @val
删除存储过程:drop proc 存储过程名
修改存储过程相当于新建存储过程,覆盖原存储过程