我有一个包含多列的storedprocedure。我想只将此存储过程的某些列插入临时表。
CREATE TABLE #Temp
(
Product VARCHAR(MAX),
)
INSERT INTO #Temp (Product)
EXEC mpaGetProducts
目前我收到错误: "列名或提供的值数与表定义不匹配"
我不想先插入一个表,然后只选择必需的列,因为存在大量数据,这会导致性能下降。
我看过这篇文章&在线的其他几个人,但它不是很有帮助: Insert results of a stored procedure into a temporary table
答案 0 :(得分:0)
你想要的是不可能的。无法直接从存储过程指定要选择的列。
编辑:实际上,执行此操作的方法稍微有点OPENQUERY
:
SELECT {Columns that I want}
FROM OPENQUERY(MyServer, 'EXEC MyStoredProc @Params');
答案 1 :(得分:0)
请提供SP说明
如果运行SP,输出可能会有多个列导致SELECT STATEMENT,因此请尝试提及需要插入表中的列