Sql server 2008 将记录(存储过程的结果)插入临时表

Sql server 2008 将记录(存储过程的结果)插入临时表,sql-server-2008,tsql,Sql Server 2008,Tsql,看到此问题的不同链接,但找不到适合我要求的链接 我有一个临时表,我想用存储过程返回的结果填充它。 存储过程返回多个列,我必须插入其中的特定列 我试过了 create table #temp ( [Field1] [numeric](14,5) NULL, [Field2] [numeric](14,5) NULL, [Field3] [nvarchar](30) NULL ) insert into #temp exec sp_name

看到此问题的不同链接,但找不到适合我要求的链接

我有一个临时表,我想用存储过程返回的结果填充它。 存储过程返回多个列,我必须插入其中的特定列

我试过了

create table #temp
(
          [Field1] [numeric](14,5) NULL,
          [Field2] [numeric](14,5) NULL,
          [Field3] [nvarchar](30) NULL
)
insert into #temp
exec sp_name @para1 = par1value,@para2=par2value
所有这些代码都驻留在另一个存储过程中。 这给了我错误

列名称或提供值的数量与表定义不匹配。


如何仅插入存储过程中多个字段结果集中感兴趣的字段?首先,您必须确保存储过程以所需格式返回数据。
那你就可以

INSERT INTO #temp([Field1], [Field2], [Field3])
EXEC sp_name @para1 = par1value, @para2 = par2value

要测试SP输出,您只需在查询编辑器中启动
EXEC SP_name@para1=par1value,@para2=par2value

如果错误与您在问题中指定的错误相同,则它会清楚地说明问题所在。