存储过程与事务

declare @name nvarchar(20),@id int--set 只能对一个变量赋值set @id=1set @name='张三'--select 可以同时对多个变量赋值select @name='张三',@id=1--print输出的是文本的方式 一次只能输出一个变量 select是以表格的方式输出select @@identity --返回最后一个插入数据的编码(id)select @@error --上一条执行错误的编号--if else--计算平均分数并输出,如果平均分数超过60分输出成绩最高的三个学生的成绩,否则输出后三名的学生事务(transaction)(tran)语法步骤: 开始事务:begin transaction 事务提交:commit transaction 事务回滚:rollback transactiondeclare @sumError int --设置一个局部变量 用来记录错误信息set @sumError=0begin tran update bank set balance=balance-100 where cid='1001' set @sumError=@sumError+@@error update bank set balance=balance+100 where cid='1002' set @sumError=@sumError+@errorif(@sumError=0) --事务执行成功 提交事务 commit transactionelse --事务执行失败,回滚事务 rollback transaction select @sumErrorend存储过程的语法create procedure 存储过程名@参数1 数据类型=默认值 output,@参数n 数据类型=默认值 outputas sql语句存储过程 是编译好的 直接拿过来用if exists(select * from sys.objects where name='usp_Grade') drop procedure usp_Gradegocreate procedure usp_Grade @sumScore float=200 as --声明一个变量用来显示每个学生的总分数declare @stuScore int,@passCount int --查询每个学生总分数 select @stuScore=sum(score) from score group by id--查询通过的人数select @passCount=count(*) from score where @stuScore>=@sumScorereturn @passCount--怎么接受还回的值declare @num intexec @num=usp_Gradeprint @num
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值