我如何在没有表变量的情况下有效地处理函数中的大量数据

时间:2018-08-19 14:47:08

标签: function temp

我需要处理函数中的数据并返回结果,但是使用表变量仅适用于少量数据,我不能使用临时表,因为它是函数。我试图使用一个返回值的存储过程,但是后来我无法从选择中调用它。关于解决方案有什么建议吗?

顺便说一句:我需要在存储过程中使用它,因为我从很多地方调用它。

这是我正在使用的东西:

....

SELECT     dbo.GetStatusCounter(StatusCode, @GatewayIDLocal, @OperationDateLocal) As TotalCount, StatusName, StatusCode, SortOrder
        FROM         Statuses
        WHERE     (Gateway = @GatewayIDLocal)
...

FUNCTION [dbo].[GetStatusCounter](@StatusCode NVARCHAR(100), @GatewayID Nvarchar(10), @TodaysDate DateTime  )
RETURNS Int
AS
BEGIN

    DECLARE @RESULT int
    SET @RESULT = 0


    DECLARE @HBStatuses table (AbillNo nvarchar(50))

    Insert into @HBStatuses (AbillNo)
    Select distinct AbillNo from HB_Statuses where HB_Statuses.StatusId = @StatusCode

    Select @RESULT = count(distinct HB.AbillNo) FROM HB WITH (NOLOCK)
    Inner Join @HBStatuses hs on hs.AbillNo = HB.AbillNo
    Where st = @StatusCode

    RETURN ISNULL(@RESULT, 0)
END 

0 个答案:

没有答案