Declare @tempTableVariable Table(
email varchar(50)
)
Insert INTO @tempTableVariable
EXEC GetData
select email
from @tempTableVariable
我收到以下错误:“列名或提供的值的数量与表定义不匹配。”
是否有一种简单的方法可以从 GetData 获取子集,而无需显式声明表变量声明中的所有字段?
Declare @tempTableVariable Table(
email varchar(50)
)
Insert INTO @tempTableVariable
EXEC GetData
select email
from @tempTableVariable
我收到以下错误:“列名或提供的值的数量与表定义不匹配。”
是否有一种简单的方法可以从 GetData 获取子集,而无需显式声明表变量声明中的所有字段?
如果您无法控制GetData
存储过程,我认为没有任何方法可以避免必须声明表变量中的所有字段。
如果您可以控制GetData
,您可以向其添加一个参数,当等于 1 时将按照您想要的方式返回结果,否则将执行当前的操作。
为了完整起见,我会提到它,但除了 INSERT EXEC 之外还有很多其他选项。 http://www.sommarskog.se/share_data.html很好地解释了这些选项。