如何将存储过程中的字段子集添加到表变量?

时间:2012-10-26 19:33:14

标签: tsql stored-procedures table-variable

Declare @tempTableVariable Table(
    email varchar(50)
)

Insert INTO @tempTableVariable 
EXEC GetData

select email
from @tempTableVariable

我收到以下错误: “列名或提供的值数与表定义不匹配。”

是否有一种简单的方法从GetData获取子集而不明确声明表变量声明中的所有字段?

1 个答案:

答案 0 :(得分:0)

如果您无法控制GetData存储过程,我认为您无法在表变量中声明所有字段。

如果你可以控制GetData,你可以为它添加一个参数,当等于1时,你会按照你想要的方式返回结果,否则就会做它当前做的事情。

为了完整起见,我会提到它,但除了INSERT EXEC之外还有很多其他选项。 http://www.sommarskog.se/share_data.html是对选项的一个很好的解释。