簡體   English   中英

動態SQL-通過執行存儲過程插入#temp表

[英]Dynamic SQL - inserting into #temp table by executing a Stored Procedure

我遇到的問題與此處已經回答的其他問題略有不同。

我有一個具有1個參數的存儲過程,並根據該參數返回不同的結果(列數)。 在此存儲過程中,我創建了一個名為#FreightData的表。 該存儲過程的末尾具有以下內容:

IF @IncludeIDs = 0 
BEGIN 
    select [Buyer], [Contract], [Product], [Shipowner], [DespatchOrder] from  #FreightData
END
ELSE 
BEGIN
    select * from #FreightData
END

以上所有操作均成功完成。

然后,在另一個名為[FreightProfile]的存儲過程中,我嘗試使用以下結果填充#temp表:

EXEC [dbo].[EXCEL_FreightData] @IncludeIDs = 1

我使用了與[EXCEL_FreightData]中的CREATE TABLE定義完全相同的表名(具有不同的表名-#FreightProfile_results),並嘗試使用以下方法填充新的臨時表

INSERT INTO #FreightProfile_results
EXEC [dbo].[EXCEL_FreightData] @IncludeIDs = 1

但是,我得到了錯誤:

列名或提供的值數與表定義不匹配。

我現在正在嘗試使用OPENROWSET解決方案,這樣就不必提供表定義來解決此問題,但是如果有人對以上內容有任何建議,將不勝感激!

我的錯!

我在表定義中復制了以下內容,因此出現了問題。

[ID] [int] identity (1,1) Not Null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM