2016-12-13 224 views
0

我有8個「.txt」文件,所有這些文件都有不同的列,我想在SSIS中創建一個循環,以便使用動態命名將其導入到單獨的SQL表中。就像 「靜態文本」+「文件名」,其中文件名是可變的。SSIS動態文件導入到SQL表

我已經做過包之前這樣做,但他們只是爲具有靜態列的文件,他們只是追加到同一個SQL表。我正在尋找爲現在通過循環運行的每個文件創建一個新的SQL表。

有沒有辦法在SSIS中做到這一點?如果有人可以建議修改,我已經在下面截取了我的一些軟件包。預先感謝您提供的任何幫助。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

+0

你不能這樣做。 SSIS需要在設計時更正元數據(列,數據類型等)。您無法在運行時動態更改它們。 – JodyT

+0

你確定沒有辦法在SSIS中對其進行編碼嗎?我以前見過這個,只是不知道我還需要什麼。 – bkubs557

+0

您應該能夠從文本文件中提取列名,並使用這些名稱構建動態sql語句來創建表,然後使用執行SQL任務來執行準備好的create table命令。 –

回答

0

,如果你有不同的結構,許多來源的你不能做到這一點。因爲SSIS需要在設計時更正元數據(列,數據類型等)。

但是,如果您具有相同結構的表格,則必須創建一個目標表格(temp)並將其名稱放入變量VarFileName中,並將其映射到OLEDB Destination中的列中。並且您必須將DataFlowTask屬性DelayValidation設置爲True。因此在DataFlowTask開始執行之前不會檢查元數據。

創建表應當與Execute SQL Task使用表達式(從變量傳遞表名)

希望它可以幫助

0
  1. 創建循環來完成。如圖所示,將腳本任務放入DFT任務中。

Image : 1

  • 木箱源和目標變量並分配一些臨時表名稱給他們。這些表格應該存在。 enter image description here

  • 腳本任務將更新源表和目標表。 按照圖像

  • enter image description here

    enter image description here

    enter image description here

    我改變的源和目標表值 「dbo.T2」 和 「dbo.T4」。但你必須根據你的要求改變。