有人可以告诉我为什么这不起作用吗?
我有一个返回表的存储过程: 这样称呼工作正常:
EXECUTE dbo.sp_Get_Total_Parcels_Paid_Data
但是,我需要在视图中使用它,并且无法使其工作。
Select * from dbo.sp_Get_Total_Parcels_Paid_Data()
错误:
无效的对象名称'dbo.sp_Get_Total_Parcels_Paid_Data()
SP代码:
create PROCEDURE [dbo].[sp_Get_Total_Parcels_Paid_Data]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @Sql1 nvarchar(max)
,@Sql2 nvarchar(max)
,@Sql3 nvarchar(max)
declare @TallyResults table
(EFOLDERID nvarchar(31) null
,inv_bank_cd int null
,inv_cd int null
,inv_group_cd int null
,intLoanNumber int null
,other_text nvarchar(250) null
,tallyCount int
,eidMgrId nvarchar(31))
select @Sql1 = 'Select ' + tallydefinition from jobfunctions where jobfuncid = 44
select @Sql2 = 'Select ' + tallydefinition from jobfunctions where jobfuncid = 45
select @Sql3 = 'Select ' + tallydefinition from jobfunctions where jobfuncid = 206
insert into @TallyResults exec sp_executesql @Sql1
insert into @TallyResults exec sp_executesql @Sql2
insert into @TallyResults exec sp_executesql @Sql3
select * from @TallyResults
END
答案 0 :(得分:5)
你不能SELECT FROM <procedure>
,抱歉。也许你可以尝试the OPENQUERY
trick,但我不确定你是否能够将它放在视图中。
答案 1 :(得分:0)
我们无法在Select语句中执行存储过程。这是一个类似的线程
答案 2 :(得分:0)
如果我没错,this就是你想要的
或许,这将指导您将结果集从一个SP获取到另一个SP的方式。