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
。如果错误与您在问题中指定的错误相同,则它会清楚地说明问题所在。