我有2个存储过程usp_SP1和usp_SP2。它们都使用插入#tt exec sp_somesp。我想创建一个第三存储过程,它将决定哪个存储过程要调用。喜欢的东西:嵌套插入exec工作
create proc usp_Decision
(
@value int
)
as
begin
if (@value = 1)
exec usp_SP1 -- this proc already has insert into #tt exec usp_somestoredproc
else
exec usp_SP2 -- this proc too has insert into #tt exec usp_somestoredproc
end
后来,我意识到我需要从usp_Decision的返回值定义的,这样我可以填充SSRS数据集领域的一些结构。因此,这里是我的尝试:
在usp_Decision创建一个临时表,并做“插入#tt EXEC usp_SP1”。这没有奏效。错误“插入exec不能嵌套”
在usp_Decision中试图将表变量传递给每个存储过程,并更新存储过程中的表并执行“select * from”。那也没有成功。作为参数传递的表变量不能在存储过程中修改。
请建议可以做些什么。
INSERT EXEC的破碎是我对SQL Server最大的宠儿之一。请投票! https://connect.microsoft.com/SQLServer/feedback/details/294571/improve-insert-exec – 2011-12-24 02:52:36