注册 登录
编程论坛 SQL Server论坛

新手,关于存储过程传参的执行时间问题,请大家帮帮忙,不胜感激

沈4861 发布于 2015-05-19 14:57, 1111 次点击
存储过程如下:

ALTER procedure [dbo].[SP_T_FUND_REPORT_TZZH_ZC]
  @f_qsrq int,
  @f_zzrq int
as
begin

declare @f_Date int
declare @f_qsrq_last int
declare @f_zzrq_last int
set @f_Date=CONVERT (varchar(8),GETDATE(),112)
set @f_qsrq_last=cast(convert(varchar(10),dateadd(mm,-3,convert(datetime,cast(@f_qsrq as varchar(10)))),112) as int);
set @f_zzrq_last=cast(convert(varchar(10),dateadd(dd,-1,convert(datetime,cast(@f_qsrq as varchar(10)))),112) as int);

.......(主体省略)

执行语句  exec SP_T_FUND_REPORT_TZZH_ZC 20150101,20150331,
最后一直处于执行状态,不出结果
当修改上述存储过程,去掉输入参数,而将之前的输入参数放在程序体里直接赋值,如下:

set @f_qsrq=20150101
set @f_zzrq=20150331
 
set @f_qsrq_last=20141001
set @f_zzrq_last=20141231


此时执行时间很快,不知为什么,求助!!!!谢谢!!!
1 回复
#2
wmf20142015-05-21 07:35
从表面上看,你第二种方法直接赋值时给变量@f_qsrq_last、@f_zzrq_last也做了赋值,而第一种方法里未看到类似赋值,不知道省略掉的主体里有没有做。
1