Sql-Server-2014

將多個文件上傳到 SQL Server,而無需訪問 Server Box

  • May 6, 2020

我正在嘗試創建一個程序,該程序將定期將多個 csv 文件批量上傳到 SQL Server 中的各個表中。我遇到的問題是這些文件不在同一台伺服器上。

我可以使用批量上傳命令從 SQL 伺服器框上的文件夾上傳文件,但不能從位於不同伺服器上的共享驅動器上傳文件。有多個人將執行此過程,因此它可能不可行,因為並非所有人都能獲得對 SQL 伺服器框的這種訪問權限。

有沒有辦法以同樣的效率和速度完成這個任務?

我曾想過發送 csv 文件中的每一行,但這些文件很大,需要很長時間

才能完成這項工作。

SSIS 會更少或更多或同樣有效嗎?

如果不涉及任何轉換,您可以在 SSIS 中相當簡單地編寫此過程,在控制流中使用 for 循環遍歷文件目錄,然後將每個文件名作為變數傳遞給數據流。csv 的文件名將綁定到該變數,並且您的目標也可以類似地綁定到文件名。只需在您的目標組件中使用批量模式,您應該會獲得相當不錯的效率。如果所有使用者都可以訪問該文件夾,並且您添加一個步驟來檢查並查看目錄中的文件是否已處理,或者在處理完文件後將它們移動到其他位置,則此方法非常有用。SSIS 程序可以直接從 SQL Server 上的 SSIS 目錄呼叫,也可以定期調度。

或者,您可以使用bcp 實用程序來獲得 CLI 體驗。這可能要簡單得多,因為它不需要編寫 SSIS 程序和管理該程序,但它需要更多關於使用者呼叫它的知識。此工具不要求文件位於伺服器上:您作為呼叫使用者提供文件的路徑,以及用於身份驗證的憑據,該工具將處理數據移動。

引用自:https://dba.stackexchange.com/questions/266604