2016-03-02 40 views
0

我有具有多个列的StoredProcedure的。我只想将此存储过程的某些列插入临时表中。插入一个存储过程的某些列插入不是Temptable在一个步骤

CREATE TABLE #Temp 
(
Product VARCHAR(MAX), 

) 


INSERT INTO #Temp (Product) 
EXEC mpaGetProducts 

目前我得到的错误: “列名或所提供值的数目不匹配表定义”

我不想插入一个表格,然后再选择唯一需要的列,因为有是大量数据,这会对性能产生影响。

我看到这个帖子&其他几个人在线,但它不是非常有帮助: Insert results of a stored procedure into a temporary table

+0

http://stackoverflow.com/a/35594430/1258492 – RAY

+0

的[从结果中选择列集的存储过程(可能的复制http://stackoverflow.com/哪一列问题/ 209383 /秒elect-columns-from-result-set-of-stored-procedure) –

回答

0

你想要什么是不可能的。没有办法指定要直接从存储过程中选择的列。

编辑:其实,稍微哈克的方式做到这一点是OPENQUERY

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

哦是啊?我想知道,因为我不能在网上遇到任何关于我的要求的东西 – CodeNinja

+0

请参阅我的编辑,以找到我能找到的最接近的解决办法。 –

0

请提供SP说明

如果你运行你的SP输出可能导致SELECT语句,这样几列尝试何况你需要插入到表