2017-03-02 112 views
0

我們有一個調用Stored Proc來填充變量對象(完整結果集)的SSIS包。你可以添加到一個SSIS對象變量,追加?

這很好。

現在我們需要再次調用同一個存儲過程,但使用不同的參數。所以我們真的需要將兩組數據全部存儲在同一個變量對象中。

如果我第二次填充它,它會覆蓋那裏或附加到它嗎?

我這樣做

Execute SQL Task 
ResultSet = Full result set 
SQLStatement - executes the stored procedure etc. 
Result Set 
Result Name = 0 
Variable Name = User::Subscriptions 

我想要留下來。但想要第二個執行完全相同的事務的執行SQL任務,只需使用不同的參數執行相同的存儲過程。我希望User::Subscription變量保留第一個Execute SQL Task加上第二個Execute SQL task的結果。這可能嗎?

+0

你在與對象變量的內容做。我總是建議完成數據庫中的所有工作(即將兩個SP結果插入表中並在那裏完成工作)。如果你正在對該對象做一些腳本,那麼你可能會有一個比它需要更復雜的數據處理設計 –

回答

0

添加另一個Execute SQL Task將覆蓋第一個結果集,您可以使用以下解決方法實現這一目標:

Execute SQL task創建臨時表,插入所有結果集進去,然後從這個臨時表中的所有條記錄在您的結果集:

您的查詢將是這樣的:

CREATE TABLE #TblTemp(Column1 varchar(50), .....) 

INSERT INTO #TblTemp(Column1 varchar(50), .....) 
EXEC Stored_Procedure_1 

INSERT INTO #TblTemp(Column1 varchar(50), .....) 
EXEC Stored_Procedure_2 

SELECT * FROM #TblTemp