我有两个存储过程;我正在调用另一个存储过程。
我从第一个存储过程返回一个表。当我单独执行第一个时,我正确地得到了表。
但是当我从另一个存储过程调用第一个存储过程时,它总是返回命令已成功完成且没有结果。
我在存储过程2中这样称呼它:
set @query = 'exec servername.dbo.storedproc1 @ClassName = ''' +
@ClassName +''', @StatusName = ''' + @StatusName
exec(@query)
答案 0 :(得分:0)
在外部过程中,创建一个临时表,该表具有与内部过程返回的结果集类似的模式。 调用内部过程时,请使用insert..exec,如下所示:
insert #tempTable exec InnerProcedure
然后从临时表中选择数据。
答案 1 :(得分:0)
首先创建一个临时表,捕获从执行第一个过程获得的数据。然后使用Select语句从临时表中检索所需的数据。不要忘记使用select语句后删除临时表,否则下次执行程序时会抛出错误表示表已经存在。另一方面,您可以使用表变量来避免删除表,因为表变量的范围仅限于包含存储过程的生命周期。 `
Insert into @temptable
Exec sprcdre1
Select * from @temptable