只需一步即可将存储过程的某些列插入到临时表中

时间:2016-03-02 15:09:40

标签: sql-server sql-server-2012

我有一个包含多列的storedprocedure。我想只将此存储过程的某些列插入临时表。

CREATE TABLE #Temp
(
Product VARCHAR(MAX),

)


INSERT INTO #Temp (Product)
EXEC mpaGetProducts

目前我收到错误: "列名或提供的值数与表定义不匹配"

我不想先插入一个表,然后只选择必需的列,因为存在大量数据,这会导致性能下降。

我看过这篇文章&在线的其他几个人,但它不是很有帮助: Insert results of a stored procedure into a temporary table

2 个答案:

答案 0 :(得分:0)

你想要的是不可能的。无法直接从存储过程指定要选择的列。

编辑:实际上,执行此操作的方法稍微有点OPENQUERY

SELECT {Columns that I want}
FROM OPENQUERY(MyServer, 'EXEC MyStoredProc @Params');

答案 1 :(得分:0)

请提供SP说明

如果运行SP,输出可能会有多个列导致SELECT STATEMENT,因此请尝试提及需要插入表中的列