如何返回SELECT
的结果作为存储过程的输出?对不起,我是存储过程的新手!
在下面的查询中,我正在调用存储过程spCuExt_ExtractLog
并将结果分配给变量@StartDate
。然后,我在主存储过程中使用此变量,在SELECT
语句中。我只需要从主存储过程返回SELECT
语句的结果:
-- Main stored procedure
BEGIN
DECLARE @StartDate DATETIME
EXEC @StartDate = spCuExt_ExtractLog 'Customers'
SELECT Id, [Name], LogoPath, IsDeleted
FROM dbo.Customers
WHERE RecordCreatedDateUTC>= @StartDate
END
这会返回对spCuExt_ExtractLog
的调用结果以及SELECT
语句的结果,但我只想输出SELECT
的结果。
我该怎么做?
答案 0 :(得分:1)
这是一个非常好的文档的链接,解释了解决问题的所有不同方法(尽管由于您无法修改现有的存储过程,因此很多方法都无法使用。)
答案 1 :(得分:1)
将结果放入表变量中:
create procedure dbo.usp_Child
as
begin
select N'Hello world!' as [message];
end;
go
create procedure dbo.usp_Main
as
begin;
declare @results table ([message] nvarchar(max));
insert into @results
execute dbo.usp_Child;
select N'success';
end;
go
execute dbo.usp_Main;