存储过程代码如下:
CREATE PROCEDURE UP_Production_Authenticate
@sOrdNo nvarchar(100),
@sResult nvarchar(30) output
AS
if not exists(select * from tblContract where [email protected])
begin
set @sResult= 'yes '
end
else
begin
set @sResult= 'no '
end
return
[email protected],用跟踪器跟踪的代码为:
declare @P1 bit
set @P1=NULL
exec sp_executesql N 'UP_Production_Authenticate ', N '@sOrdNo nvarchar(100),@sResult bit output ', @sOrdNo = N '9042 ', @sResult = @P1 output
select @P1
[email protected]?
------解决方案--------------------
CREATE PROCEDURE UP_Production_Authenticate
@sOrdNo nvarchar(100),
@sResult nvarchar(30) output
AS
set @sResult = ' ' --- 先给个初始值
if not exists(select * from tblContract where [email protected])
begin
set @sResult= 'yes '
end
else
begin
set @sResult= 'no '
end
return
------解决方案--------------------
执行的时候这样写看看
declare @P1 nvarchar(30)
set @P1=NULL
exec sp_executesql N 'UP_Production_Authenticate ', N '@sOrdNo nvarchar(100),@sResult nvarchar(30) output ', @sOrdNo = N '9042 ', @sResult = @P1 output
select @P1
------解决方案--------------------
代码是正确的.如果返回的是NULL,只可能是你调用有错或那个if根本就没执行.
实际情况.仔细找找你实际的存储过程.
------解决方案--------------------
存储过程没有问题,不加return 也不会反回NUll 应该还是程序调用的有问题。