我正在處理將用於將數據從Excel文件導入到SQL Server的SSIS包。我目前的掙扎是想辦法讓SSIS軟件包準確地引入一個excel文件,而不必事先知道它的名稱。我有一個同時包含0
和n
excel文件的目錄。我只想拉入最早創建時間的文件。這可能嗎?使用SSIS在不知道文件名的情況下使用SSIS從Excel導入數據
我正在使用Visual Studio 2015構建SSIS包。我的數據庫是SQL Server 2016
我正在處理將用於將數據從Excel文件導入到SQL Server的SSIS包。我目前的掙扎是想辦法讓SSIS軟件包準確地引入一個excel文件,而不必事先知道它的名稱。我有一個同時包含0
和n
excel文件的目錄。我只想拉入最早創建時間的文件。這可能嗎?使用SSIS在不知道文件名的情況下使用SSIS從Excel導入數據
我正在使用Visual Studio 2015構建SSIS包。我的數據庫是SQL Server 2016
要創建一個動態的文件連接:數據類型爲String:
創建一個新的變量( '的SourceFile' 名稱例)。
在'For Each Loop Container'映射該變量在'Variable Mapping'選項卡下的變量,並將'Enumerator Configuration'設置爲正確的文件夾和文件擴展名。 'For Each Loop Container'將從該位置讀取文件並將該文件的名稱分配給該變量。
在您的文件連接的表達式屬性設置ConnectionString屬性@ [用戶::的SourceFile]
這應該使你的文件的源動力。無論命名是什麼,它都會選取文件,但文件格式必須一致。
僅使用SSIS任務,我不知道如何利用文件的創建日期來選擇最早的文件,但如果文件名包含文件的創建日期,則可以將日期從@ [ User :: SourceFile]變量,並在每次執行'For Each Loop Container'時將其存儲在另一個變量中,以確定哪個文件最早。
謝謝你的回答。我遇到的問題是我只想一次帶入一個文件,而不是文件夾中的所有文件。如果我這樣做,那麼這個包是不是會帶入該位置的所有文件? –
如果For Each Loop內沒有其他任務,它將只讀取文件名並將其分配給@ [User :: SourceFile]。它不會移動任何文件或執行任何其他任務,除非您將這些任務放在循環中。您可以使用循環來僅確定最舊文件的名稱,並且一旦知道最早文件的名稱,就將該值分配給另一個變量(例如:@ [User :: SourceFileMaxCreateDate]),並在ConnectionString中使用該新變量文件連接的屬性 –
呵呵。這並沒有發生在我身上。謝謝! –