0

我有两个存储过程;我正在从另一个调用一个存储过程。

我从第一个存储过程返回一个表。当我单独执行第一个时,我得到了正确的表格。

但是当我从另一个存储过程调用第一个存储过程时,它总是返回命令成功完成并且没有结果。

我在存储过程 2 中这样称呼它:

set @query = 'exec servername.dbo.storedproc1 @ClassName = ''' + 
             @ClassName +''', @StatusName = ''' + @StatusName 
exec(@query) 
4

2 回答 2

1

在外部过程中,创建一个与从内部过程返回的结果集具有相似架构的临时表。调用内部过程时,使用 insert..exec,如下所示:

insert #tempTable exec InnerProcedure

然后从临时表中选择数据。

于 2013-04-12T19:08:17.687 回答
0

首先创建一个临时表,用于捕获从执行第一个过程中获得的数据。然后使用 Select 语句从临时表中检索所需的数据。不要忘记在 Select 语句之后使用 drop 临时表 table 否则下次执行过程时会抛出 table already exists 错误。另一方面,您可以使用表变量来避免删除表,因为表变量的范围仅限于包含存储过程的生命周期。`

Insert into @temptable
Exec sprcdre1

Select * from  @temptable
于 2013-04-12T19:16:32.073 回答