2014-12-05 41 views
0

我需要每天導入一個平面文件。該文件每天更改其名稱。文件處理完成後,需要將其移至另一個文件夾。如果服務器文件夾中存在文件,我該如何執行SQL Server代理作業?

我注意到我可以在SQL Server代理中安排作業,並且我可以告訴它每隔一小時左右運行一次,並且我可以向其添加CMD命令。

我找到的解決方案是運行一個腳本來檢查文件是否存在,因爲該文件夾應該是空的或至少有一個文件。

如果該文件存在,腳本將該文件重命名爲SSIS包中使用的文件,然後運行SSIS包。

完成整件事後,應該根據今天的日期再次重命名文件並將其移至另一個文件夾。

如果該文件不存在,那麼它應該什麼都不做,並且等一個小時左右再次運行。

此場景的最佳解決方案是什麼?劇本是一個好主意嗎?也許是否有可能將文件存在的if/else添加到SSIS包中?甚至是讓腳本從SSIS包本身運行,而不是將其添加到服務器代理?

編輯:

看來我還是有點天真,這是可以從服務器上運行VB腳本。這是推薦的解決方案嗎?它確實解決了我的問題,但我只是想知道這是個好主意。

+0

你看着一個SSIS文件守望者的情況? SOme實現使用WMI事件觀察器http://microsoft-ssis.blogspot.com/2010/12/continuously-watching-files-with-wmi.html – 2014-12-05 14:05:29

+0

您會收到一個帶有變量名稱的文件(假設它有一個日期或某個東西在裏面)。您將其重命名爲標準名稱。處理它。移動它並將處理的日期添加到文件名中。那關於總結情況? – billinkc 2014-12-05 15:46:47

+0

是的。我在WMI事件監視器下找到了一些指南。但是現在我遇到了WQL查詢的問題。這也已在其他地方awnsered:http://stackoverflow.com/questions/21436377/how-to-execute-ssis-package-when-a-file-is-arrived-at-folder和在這裏更詳細的http:///www.sqlservercentral.com/articles/Integration+Services+%28SSIS%29/90571/ – 2014-12-05 18:36:09

回答

相關問題