我只能在OLE DB源中找到使用臨時表的解決方案。 但我找不到ADO.NET源代碼的解決方案。如何在SSIS包中的ADo.NET源代碼中成功使用臨時表?SSIS中的臨時表ado.net源碼
回答
我發現SSIS中的臨時表的工作比他們通常的價值更痛苦。我希望你的體驗更好。
創建一個ADO.NET連接。在連接管理器的屬性中,將RetainSameConnection的值從false
設置爲true
。這將允許通過防止連接池交換線程而使創建的臨時表在存在包執行期間存在。
我的問題從正確獲取元數據的設置中延伸出來。爲了解決這個問題,我創建了一個變量,QuerySource
,它查詢一張反映臨時表的外觀的物理表。 SELECT S.src_id, S.src_value FROM dbo.SRC AS S;
這允許數據流爲下游組件建立正確的元數據。我在ADO.NET源代碼中手動使用此查詢。完成後,我需要更改查詢以使用臨時表##SRC
。與OLE DB源組件不同,您不能在數據流任務中設置此屬性。
數據流工作完成後,回到控制流中,查看Data Flow Task
的屬性。將延遲驗證從false
更改爲true
。這將阻止任何設計時間驗證發生,一旦我們刪除非臨時表「腳手架」就需要進行驗證。接下來找到表達式並單擊省略號(...)。在下拉列表中,您應該看到ADO.NET源的名稱。我已經重新命名了,所以我在下拉列表中看到[ADONET Src]。[TableOrViewName]和[ADONET Src]。[SqlCommand]。我選擇了[ADONET Src]。[SqlCommand]和我的價值,我使用了@[User::SrcQuery]
。
我運行包以確保它仍然有效。它做了。然後,我改變了我的查詢的值爲SELECT S.src_id, S.src_value FROM ##SRC AS S;
我reran,這次它正確地從我的臨時表中拉出數據。
如果您使用SQL Server 2012作爲源代碼,那麼可以使用EXECUTE語句的WITH RESULT SETS選項明確描述臨時表元數據,從而使自己更容易。
- 1. SSIS臨時臨時表
- 2. SSIS兩個臨時表
- 3. 出口臨時表在SSIS
- 4. 在ssis包中使用臨時表
- 5. 臨時表在SSIS中立即丟棄
- 6. 在SSIS包中使用臨時表
- 7. SSIS ADO.net源代碼的可變SQL命令
- 8. SSIS流程ADO.net源任務參數
- 9. SSIS:記錄集或臨時表
- 10. SSIS - 從CSV導入到臨時表
- 11. 臨時表資源限制
- 12. SSIS和ADO.NET和Azure
- 13. 如何在ADO.NET源中傳遞參數SSIS
- 14. 在ado.net源碼中傳遞參數
- 15. 如何查找臨時表的來源
- 16. SSIS 2012中的CDC源代碼問題
- 17. 在SSIS 2014中使用SP中的臨時表時發出的問題
- 18. SSIS 2008使用ADO.NET目標
- 19. 在SSIS流程中使用臨時表格
- 20. 臨時數據源
- 21. 包括創建臨時表的SQL的SSIS作業
- 22. SQL Server 2012的SSIS - 創建臨時表的問題
- 23. SSIS包源代碼檢查
- 24. SQL SSIS幫助。將Excel表導入臨時表
- 25. MySQL臨時表是共享資源嗎?
- 26. 全局臨時表回滾源
- 27. SSIS - 如何在飛行Ole db目的地創建臨時表
- 28. SSIS包不想獲取臨時表的元數據
- 29. LDAP SSIS在ADO.NET拋出一般性錯誤數據源
- 30. 在ADO.NET中使用動態創建的臨時表進行批量複製
+1 !!在這一天工作了一整天。 '...查看數據流任務的屬性。將延遲驗證從false更改爲true。「這正是讓我感到困擾的原因。繁榮,現在它工作。 –