是否可以在返回多个表结果的另一个存储过程 (sp2) 中调用存储过程 (sp1)?
我必须在执行的存储过程(sp2)中使用返回的结果。
据我所知,这是不可能的。但我想确定。
有没有其他方法可以实现这种要求?
是否可以在返回多个表结果的另一个存储过程 (sp2) 中调用存储过程 (sp1)?
我必须在执行的存储过程(sp2)中使用返回的结果。
据我所知,这是不可能的。但我想确定。
有没有其他方法可以实现这种要求?
您可以INSERT INTO <table> EXEC <sp>
用于一个结果集。
但这不适用于多个结果集。
而且你不能嵌套它。 (SP2 在调用 SP1 时可以使用它。但如果 SP3 调用 SP2,则不能做同样的事情。)
如果您确实要返回多个结果集,则需要将结果插入表中。然后外部 SP 可以使用这些表。
如果外部 SP 创建一个临时表 ( CREATE TABLE #temp
),则内部 SP 可以看到它插入其中。
同样,您可以使用永久表。我建议有一个名为 SPID 的列,并使用 @@spid 作为您插入其中的值。 (@@spid 唯一标识每个会话。) 但是您必须记住在插入表后进行清理。
所有这些选项都假定您可以修改两个 SP。如果不能,我不确定您是否可以在 SQL Server 中执行此操作。
为此,您可以在 SP2 中创建一个临时表并在 SP1 中使用它