我正在使用具有175個不同Excel模板的客戶端來創建我需要導入到SQL 2008 R2中的工作表。有一個節約的寬限期,模板中有10列是所有175共有的列,他們也是我需要導入到SQL表中的列。這裏是我的問題:如果我只將所有工作表通用的列映射到數據庫表,SSIS是否會忽略其他列,或者我需要以某種方式對這些額外列做些什麼?從Excel導入SSIS選擇性列
我開發了一個供用戶使用的模板,但顯然他們需要這些其他列以供除了我正在執行的導入之外的其他應用程序使用。
我目前的SSIS過程有一個準備SQL任務來創建SQL表,然後是一個數據流任務,它映射Excel工作表列和一個導入任務,該導入任務採用映射列並更新表。
我的猜測是,如果我只用我需要的列創建表格,將Excel映射調整爲只選擇表格中的可用列,導入將只移動這些列,因此,我會無論使用哪個模板,都有我需要的東西。
有沒有人做過這樣的事情?這個過程大約需要6個月,直到新系統可用,這將在兩個系統之間共享這些數據。
提前感謝任何輸入。
謝謝。昨晚我輸入了175張紙張中的4張。它們與關鍵列上的命名非常一致,所以我只能映射我需要的列。我今天繼續測試,但這似乎工作。我很好奇你的意思是通過防守來寫作。 – 2013-04-10 13:43:45
維基百科有一個很好的解釋:) http://en.wikipedia.org/wiki/Defensive_programming 你的代碼試圖預測你可以想到的每一個可能的失敗。所以你最終得到80%的代碼作爲錯誤處理。我只是提到它,因爲在之前關於觸發器的問題中,一張海報表示只有1行會插入到他的表格中,所以他不需要滿足多行...並且我說這不是很好防禦性編程。說實話,它甚至不應該有一個特殊的名字,所有的代碼應該這樣寫! – 2013-04-10 23:11:39
因爲數據質量不好,導入Excel時必須特別防守,人們創建宏和公式,跳過行,以及代碼中允許的所有類型的東西。 – 2013-04-10 23:12:57