-1

有人可以告诉我为什么这行不通吗?

我有一个返回表的存储过程:像这样调用它可以正常工作:

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
4

3 回答 3

5

你不能SELECT FROM <procedure>,对不起。也许你可以试试这个OPENQUERY把戏,但我不确定你能不能把它放在一个视图中。

于 2013-03-22T19:20:58.750 回答
0

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

SQL Server - 从存储过程中选择

于 2013-03-22T19:20:16.270 回答
0

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

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

于 2013-03-22T19:30:54.817 回答