1
我需要一些建議如何解決以下任務:動態地從源服務器創建目標表與SSIS
我得到了基於IBM DB2(IBMDA400)源系統裏面有很多表,這些表應迅速改變,每日結構。我必須從DB2中將指定的表加載到MSSQL 2008 R2服務器中。所以我認爲使用SSIS是最好的選擇。
我的第一次嘗試只是添加兩個數據源,將所有表格刪除到MSSQL中,然後用「從@Table中選擇* Into @Table」重新創建它們。但我無法得到這個工作,因爲我無法連接兩個OLEDB連接。我也嘗試過使用Openrowset語句,但SQL Server不允許出於安全原因,我不允許更改它。
我的第二次嘗試是從源手動讀取表並刪除併爲每個循環重新創建表,然後通過數據流任務加載數據。但是我一直在從執行SQL任務中獲取元數據......所以我沒有獲得列名和類型。
我不敢相信這太難實現了。爲什麼數據流任務中沒有「如果不存在則創建表」複選框?
當然,我在這裏搜索了這個問題,但找不到解決方案。
由於提前, 墊
那麼你可以通過從sys.objects中選擇並刪除它來檢查SQL腳本中是否存在表。這聽起來像是DBA的噩夢。如果你不知道即將到來的結構,你將如何將數據加載到SQL Server數據庫中?如果表格會一直改變,你打算如何使用這些數據? – PacoDePaco
數據將與單獨的前端一起使用。我不確定你是否正確。我不會從源中刪除任何東西,我只是想將整個結構複製到sql服務器上... – Pad
我做到了。我的意思是你將如何在任何應用程序中使用數據?除非它是「從...中選擇*」,否則您甚至無法查詢數據以及可怕設計的尖叫聲。通常,您將創建一個臨時數據庫,其中包含源系統中的所有數據,並在匹配數據結構後將其推送到您的OLTP數據庫。你能區分源碼中沒有改變的任何列嗎?那麼在將來你可以根據需要添加新的列。 – PacoDePaco