日期:2014-05-17  浏览次数:20459 次

输出参数在存储过程里面能调用吗

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE  [dbo].[bf_jiaofuma_sq] 
@Fac  varchar(50) output,
@username varchar(100),
@duanxin varchar(100),
@ls_no varchar(50)
 AS
begin
declare @jfm int
exec @jfm=cs_jiaofuma;1 @Fac output,@username,@duanxin,@ls_no,'123',''//执行了另一个带输出参数的存储过程
if(@jfm<>0)
begin
declare @cwxx varchar(50)
select @cwxx=dbo.[bf_fanhuicuowu](@jfm)
raiserror(@cwxx,16,1)
return(1) 
end
else
begin
update dbo.tcon set bf_code=@Fac  where Ls_no=@ls_no//这行是重点。
end
end

本人十分确定在这个存储过程体外调用@FactorCode 是有值得,但是
update dbo.tcon set bf_code=@Fac  where Ls_no=@ls_no执行后,这句bf_code却没有修改


------解决方案--------------------
exec @jfm=cs_jiaofuma;1 @Fac output,@username,@duanxin,@ls_no,'123',''//
这里执行过程写法是不是不对
mssql?
------解决方案--------------------
exec @jfm=cs_jiaofuma;1 @Fac output,@username,@duanxin,@ls_no,'123',''//执行了另一个带输出参数的存储过程


这个红色的是什么意思?
------解决方案--------------------
引用:
原来是没问题

你看下cs_jiaofuma 这个过程的参数信息
看看调用的方法是否正确

------解决方案--------------------
引用:
没觉得有错啊,我就是加了
else
begin
update dbo.tcon set bf_code=@Fac  where Ls_no=@ls_no//这行是重点。
end
这个东西。另外在执行cs_jiaofuma这个存储过程里是向另一个表查数据的其中@Fac是有值的
我就不想改人家的东西,才在外面加的else的

exec @jfm=cs_jiaofuma;1 @Fac output,@username,@duanxin,@ls_no,'123',''//执行了另一个带
select @jfm,@fac
输出参数的存储过程
执行完 
@jfm,@Fac有值吗