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
前一篇:Oracle函数基本语法
后一篇:SqlSever存储过程基础