Create Procedure [dbo].[FluxVS](
  @InterFaceList_tID int,
  @OriginInOctets int,
  @OriginOutOctets int
  )
AS
SET NOCOUNT ON
    DECLARE @LastInOctets int
    DECLARE @LastOutOctets int
Begin Select top 1 @LastInOctets=InOctets,@LastOutOctets=OutOctets from FluxList where dCreateTime <= dateadd(hour,1,getdate()) Order By dCreateTime Descreturn @OriginInOctets/@LastInOctetsRETURN后,没显示任何数据,请高手帮忙解决呀` 

解决方案 »

  1.   

    Select top 1 InOctetsOutOctets from FluxList where dCreateTime  <= dateadd(hour,1,getdate()) Order By dCreateTime Desc 这样是否有记录?.
    存储过程的return是返回单个值..一般用它来指定存储过程是否执行成功返回值.在存储过程中指定output
      

  2.   

    Create Procedure [dbo].[FluxVS]( 
      @InterFaceList_tID int, 
      @OriginInOctets int output, 
      @OriginOutOctets int output
      ) 
    AS 
      SET NOCOUNT ON 
      DECLARE @LastInOctets int 
      DECLARE @LastOutOctets int   Select top 1 @LastInOctets=InOctets,@LastOutOctets=OutOctets from FluxList where dCreateTime  <= dateadd(hour,1,getdate()) Order By dCreateTime Desc   set @OriginInOctets=@LastInOctets
      set @OriginOutOctets=@LastOutOctets 
    go-------------
    调用  DECLARE @LastInOctets int 
      DECLARE @LastOutOctets int 
      
     exec [dbo].[FluxVS] 12,@LastInOctets output,@LastOutOctets output
     select @LastInOctets,@LastOutOctets
      

  3.   

    想这样的功能直接用户自定义函数实现就好了,如果真的要用存储过程,那么就将return @OriginInOctets/@LastInOctets  修改为 select @OriginInOctets/@LastInOctets 就好,注意@LastInOctets 不要为0