从视图内的存储过程中选择

时间:2013-03-22 19:13:30

标签: sql-server

有人可以告诉我为什么这不起作用吗?

我有一个返回表的存储过程: 这样称呼工作正常:

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

3 个答案:

答案 0 :(得分:5)

你不能SELECT FROM <procedure>,抱歉。也许你可以尝试the OPENQUERY trick,但我不确定你是否能够将它放在视图中。

答案 1 :(得分:0)

我们无法在Select语句中执行存储过程。这是一个类似的线程

SQL Server - SELECT FROM stored procedure

答案 2 :(得分:0)

如果我没错,this就是你想要的

或许,这将指导您将结果集从一个SP获取到另一个SP的方式。