create function fun_chjg (@f_chbm varchar(15),
@vJglx varchar(20)='f_bzsj',
@f_dwxh int=0,
@f_bz int=0,
@f_ksrq varchar(8)='',
@f_jsrq varchar(8)='')
returns float
as
begin
declare @jg float
declare @Sql nvarchar(800)
set @jg=0
if (@f_ksrq='')
begin
select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz order by f_jsrq desc
end
else if (@f_jsrq='')
begin
select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz or (f_ksrq<=@f_jsrq and f_jsrq>=@f_jsrq) order by f_jsrq desc
end
else
begin
select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz and (f_ksrq=@f_ksrq and f_jsrq=@f_jsrq)
end
return(@jg )
end
select f_chbm, dbo.fun_chjg(f_chbm,default,default,default,default,default) from tbda_ch服务器: 消息 8114,级别 16,状态 5,过程 fun_chjg,行 15
将数据类型 varchar 转换为 float 时出错。
@vJglx varchar(20)='f_bzsj',
@f_dwxh int=0,
@f_bz int=0,
@f_ksrq varchar(8)='',
@f_jsrq varchar(8)='')
returns float
as
begin
declare @jg float
declare @Sql nvarchar(800)
set @jg=0
if (@f_ksrq='')
begin
select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz order by f_jsrq desc
end
else if (@f_jsrq='')
begin
select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz or (f_ksrq<=@f_jsrq and f_jsrq>=@f_jsrq) order by f_jsrq desc
end
else
begin
select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz and (f_ksrq=@f_ksrq and f_jsrq=@f_jsrq)
end
return(@jg )
end
select f_chbm, dbo.fun_chjg(f_chbm,default,default,default,default,default) from tbda_ch服务器: 消息 8114,级别 16,状态 5,过程 fun_chjg,行 15
将数据类型 varchar 转换为 float 时出错。
@vJglx varchar(20)='f_bzsj',
@f_dwxh int=0,
@f_bz int=0,
@f_ksrq varchar(8)='',
@f_jsrq varchar(8)='')
returns float
as
begin
declare @jg float
declare @Sql nvarchar(800)
if (@f_ksrq='')
begin
set @Sql=N'select top 1 @jg='+@vJglx+' from tbda_ch_jg where f_chbm = '''+@f_chbm+''' and f_dwxh='+cast(@f_dwxh as varchar(10)) +' and f_bz='+cast(@f_bz as varchar(10))+' order by f_jsrq desc '
exec sp_executesql @Sql,N'@jg float output',@jg output
end
else if (@f_jsrq='')
begin
set @Sql=N'select top 1 @jg='+@vJglx+' from tbda_ch_jg where f_chbm = '''+@f_chbm+''' and f_dwxh='+cast(@f_dwxh as varchar(10)) +' and f_bz='+cast(@f_bz as varchar(10))+' or (f_ksrq<='''+@f_jsrq +''' and f_jsrq>='''+@f_jsrq+''') order by f_jsrq desc '
exec sp_executesql @Sql,N'@jg float output',@jg output
end
else
begin
set @Sql=N'select top 1 @jg='+@vJglx+' from tbda_ch_jg where f_chbm = '''+@f_chbm+''' and f_dwxh='+cast(@f_dwxh as varchar(10)) +' and f_bz='+cast(@f_bz as varchar(10))+' and (f_ksrq='''+@f_jsrq +''' and f_jsrq='''+@f_jsrq+''') order by f_jsrq desc '
exec sp_executesql @Sql,N'@jg float output',@jg output
end
return(isnull(@jg,0))
endselect f_chbm, dbo.fun_chjg(f_chbm,default,default,default,default,default) from tbda_ch服务器: 消息 557,级别 16,状态 2,过程 fun_chjg,行 15
只有函数和扩展存储过程才能从函数内部执行。
create function fun_chjg (@f_chbm varchar(15),
@vJglx varchar(20)='f_bzsj',
@f_dwxh int=0,
@f_bz int=0,
@f_ksrq varchar(8)='',
@f_jsrq varchar(8)='')
returns float
as
begin
declare @jg float
declare @Sql nvarchar(800)
set @jg=0
if (@f_ksrq='')
begin
if @vJglx='f_bzsj' select top 1 @jg=f_bzsj from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz order by f_jsrq desc
-- else if
end
else if (@f_jsrq='')
begin
if @vJglx='f_bzsj' select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz or (f_ksrq<=@f_jsrq and f_jsrq>=@f_jsrq) order by f_jsrq desc
-- else if
end
else
begin
if @vJglx='f_bzsj' select top 1 @jg=@vJglx from tbda_ch_jg where f_chbm=@f_chbm and f_dwxh=@f_dwxh and f_bz=@f_bz and (f_ksrq=@f_ksrq and f_jsrq=@f_jsrq)
-- else if
end
return(@jg)
end
返回代码 = 0请问这个警告是什么意思?还有返回代码0表示什么,是不是表示成功了
至于返回代码=0,是哪里的信息?
把你代码贴出来看看
(@var1 as int,
@var2 as int output)
as
begin
set @var2=1000
return 0
enddeclare @YourVar1 int
declare @YourVar2 int
set @YourVar1=1
set @YourVar2=1
exec PrTest @YourVar1,@YourVar2
--exec PrTest @YourVar1,@YourVar2 output
select @YourVar2输出结果
1
若exec PrTest @YourVar1,@YourVar2 output
则输出结果
1000