我需要处理函数中的数据并返回结果,但是使用表变量仅适用于少量数据,我不能使用临时表,因为它是函数。我试图使用一个返回值的存储过程,但是后来我无法从选择中调用它。关于解决方案有什么建议吗?
顺便说一句:我需要在存储过程中使用它,因为我从很多地方调用它。
这是我正在使用的东西:
....
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