我有一個SSIS應用程序需要從不同服務器(不是鏈接)的2個數據庫中獲取數據。我需要獲取2數據庫之間的匹配名稱和DOB記錄,然後使用結果插入/更新表格。 我最初的方法是使用OLE DB源然後合併連接並將結果放入記錄集。然後在控制流中,使用記錄集的結果插入/更新表。但是我無法在控制流中看到記錄集。 替代解決方案是創建臨時表。但臨時表不可見,因爲它們駐留在每個服務器的tempdb數據庫中。 這個問題更好的方法是什麼?SSIS:記錄集或臨時表
2
A
回答
1
你是什麼意思put the results to recordset
?
如果您使用連接在數據流上連接兩個源,則該連接上的「記錄集」僅在當前數據流期間可用。在數據流爲finisehd後,您不能在控制流上使用它。
爲什麼不能在目標數據庫中插入結果集?您可以對同一數據流執行任何其他變換操作,並將結果插入到目標數據庫中。或者,如果您確實需要在插入數據之前在控制流中執行某些操作,那麼您可以使用oleDBDestination將記錄集插入到目標的臨時表上,並在另一個數據流中訪問(雖然不是很好的做法)
+0
感謝您的回答。我已經使用了OLE DB目標,然後創建另一個包來使用OLD DB Command更新其餘表。 – dmarkez
1
在這種情況下,我會爲工作表保留一個數據庫或爲這些工作表創建一個模式。
接下來,添加一個SQL控制流任務,該任務截斷將保存中間結果的表。之後,將中間結果集加載到表中,執行操作並可選擇再次截斷表。
對於較小的數據集,記錄集目標是可以的。但是,如果您打算將其用於不適合內存的較大數據集,它將會非常緩慢。
如果您沒有可用作工作區的數據庫/架構,則可以使用RAW文件來保存中間結果。這些速度也非常快。
相關問題
- 1. SSIS臨時臨時表
- 2. SSIS兩個臨時表
- 3. 出口臨時表在SSIS
- 4. SQL Server記錄集臨時表過早關閉?
- 5. 將重複記錄插入臨時表
- 6. SSIS記錄集目標錯誤
- 7. SSIS中的記錄集操作
- 8. SSIS - '執行SQL'任務和記錄集
- 9. SSIS交易 - 大型記錄集
- 10. 從臨時表向新表插入記錄並從臨時表中刪除
- 11. 在ssis包中使用臨時表
- 12. 臨時表在SSIS中立即丟棄
- 13. SSIS - 從CSV導入到臨時表
- 14. 在SSIS包中使用臨時表
- 15. SSIS中的臨時表ado.net源碼
- 16. 使用記錄集而不是記錄的SSIS DataFlowTask
- 17. SSIS - 從表變換2只記錄1個記錄表B中
- 18. 從臨時表中刪除記錄時將被刪除的所有記錄
- 19. 臨時表到主表插入或更新審計和日誌記錄
- 20. 臨時表垃圾收集
- 21. 從兩個時間表請求記錄時爲空記錄集
- 22. SQL-獲取存儲過程多個記錄集到臨時表變量
- 23. MySQL臨時表或視圖?
- 24. 臨時表或屬性
- 25. SSIS可執行表達式記錄
- 26. 記錄SSIS變量表達式
- 27. 記錄剛剛沒有臨時表時選擇的內容?
- 28. 臨時表發送大型結果集(什麼是最差的臨時表或發送巨大的結果集)
- 29. 將10000條記錄從Excel表格粘貼到臨時表格
- 30. 將視圖/臨時表記錄添加到表格網格
服務器A和服務器B上的數據。一組表是驅動程序而另一組表是否需要合併並加載到最終目的地? – billinkc