Sql server 2005 为什么INSERT EXEC存储过程不能嵌套?

Sql server 2005 为什么INSERT EXEC存储过程不能嵌套?,sql-server-2005,Sql Server 2005,我发现了一篇非常好的文章,详细介绍了如何传递表数据,其中提到了INSERT-EXEC样式的表数据共享的缺点是不允许嵌套 换句话说[至少在SQL Server 2005中],在PROC1下面的伪代码中,INSERT EXEC将在运行时出错。我想知道是否有人知道这是为什么 CREATE PROC1 AS --Fill table variable with data from somewhere INSERT INTO @tbl EXECUTE spI_Return_Data -- D

我发现了一篇非常好的文章,详细介绍了如何传递表数据,其中提到了INSERT-EXEC样式的表数据共享的缺点是不允许嵌套

换句话说[至少在SQL Server 2005中],在PROC1下面的伪代码中,INSERT EXEC将在运行时出错。我想知道是否有人知道这是为什么

CREATE PROC1
AS
  --Fill table variable with data from somewhere
  INSERT INTO @tbl EXECUTE spI_Return_Data

  -- Do some stuff to the data

  -- 'Return' it
  SELECT * FROM @tbl
GO

CREATE PROC2
AS
  --Fill table variable with data from PROC1
  INSERT INTO @tbl EXECUTE PROC1

  -- Do some stuff to the data

  -- 'Return' it
  SELEC * FROM @tbl
GO

内部实施限制


如果需要捕获存储过程的输出,那么这些过程首先应该是一个表值函数。最终,您可以使用CLR过程绕过限制。

内部实现限制


如果需要捕获存储过程的输出,那么这些过程首先应该是一个表值函数。最终,您可以通过使用CLR过程来绕过限制。

谢谢,但我实际上很想知道内部实现限制是什么。我不知道该去哪里找。实际上,我并不是在寻找共享表信息的设计建议,因为我在帖子中提供的链接实际上有几十个。谢谢,但我实际上很想知道内部实现限制是什么。我不知道该去哪里找。我并不是在寻找分享表格信息的设计建议,因为我在帖子中提供的链接实际上有几十个。