INSERT INTO @table_name ... EXEC usp_name

时间:2010-05-20 20:31:18

标签: sql-server-2005

我在很多网站上都看到以下代码不起作用,其中@table_name是一个表变量:

INSERT INTO @table_name EXEC usp_name usp_param1, usp_param2

但是在SQL Server 2005(版本9.0.4035)中的存储过程中,上面的确切代码对我来说很好。

甚至MSDN(URL:http://msdn.microsoft.com/en-us/library/aa260638%28v=SQL.80%29.aspx)都提到如果在表变量上执行使用exec插入俱乐部的尝试,插入代码将不起作用。不幸的是,顶部的MSDN页面提到该页面适用于SQL Server 2000,这增加了混乱。

有人会对此有所了解吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

等效的SQL 2008/2005 MSDN页面不同::

  

但是,表中不能使用   以下声明:

     

SELECT select_list INTO table_variable

这是因为SELECT ... INTO 创建目标表,并且create语义与变量范围语义不兼容。

支持

INSERT INTO @table EXEC ...。您不能指定table-valued parameter,但这与表变量不同。