加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SqlSever带有入参及出参的存储过程案例

(2015-12-23 16:40:27)
标签:

it

分类: MY-SQLServer
--出参值说明
--@feedback=1 报告更新虚拟打印状态
--@feedback=2 图像更新虚拟打印状态
--@feedback=3 报告图像同时更新虚拟打印状态
--@feedback=4 @examtid传值为空
--@feedback=5 数据库中未查询到exam.tid=@examtid的记录
--@feedback=6 @VirtualReportPrintStatus和@VirtualFilmStatus传值均为空
--@feedback=7 @VirtualReportPrintStatus或者@VirtualFilmStatus传如非法值
--存储过程
create proc UpdateExamVirtualStatus
@examtid int,
@VirtualReportPrintStatus int,
@VirtualFilmStatus int,  (入参)
@feedback int output   (出参)
as
if(@examtid is null or @examtid='' or @examtid=' ')   (或判断)
begin
set @feedback=4  (设置出参值)
return @feedback  (这里出参为数值,出参值如果设置为字符串会有问题,不知道支不支持字符串出参)
end
else
begin
declare @count int   declare声明变量)
select @count=COUNT(*)  from exam where exam.TID=@examtid  (给变量赋值)
if(@count=0)
begin
set @feedback=5
return @feedback
end
else
begin
if(@VirtualReportPrintStatus=1 and @VirtualFilmStatus=1)  (且判断)
begin
update exam set exam.VirtualFilmStatus='1',exam.VirtualReportPrintStatus='1' where exam.TID=@examtid  (设置更新条件,否则全部更新)
set @feedback=3
return @feedback
end
else if(@VirtualReportPrintStatus=1 and @VirtualFilmStatus is null)
begin
update exam set exam.VirtualReportPrintStatus='1' where exam.TID=@examtid
set @feedback=1
return @feedback
end
else if(@VirtualFilmStatus=1 and @VirtualReportPrintStatus is null)
begin
update exam set exam.VirtualFilmStatus='1' where exam.TID=@examtid
set @feedback=2
return @feedback
end
else if(@VirtualReportPrintStatus is null and @VirtualFilmStatus is null)
begin
set @feedback=6
return @feedback
end
else
begin
set @feedback=7
return @feedback
end
end
end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有