在 SQL Server 環境中,針對特定表進行資料備份與還原是常見的維護需求。雖然 SQL Server 內建了備份工具,但有時我們需要更靈活、自動化的方式來處理單一表的資料移動。本文介紹一個基於 Perl 的腳本,利用 bcp 公用程式實現指定表的資料導出與導入,並透過設定檔管理資料庫認證,提供互動式操作介面。
在 C 槽根目錄建立 config.txt,內容如下:
username:sa password:passwd123!
請根據實際環境修改帳號與密碼。
確保系統已安裝 Perl(腳本宣告使用 #!C:\Perl64\bin 路徑),並能正常呼叫 SQL Server 的 bcp.exe 工具。
腳本會開啟 c:/config.txt,分別搜尋 username: 與 password: 關鍵字,擷取冒號後的字串作為登入憑證:
my $dir = "c:/"; my $filename = "config.txt"; # 讀取 username # 讀取 password
啟動後顯示操作提示:
database.schema.table,如 test.dbo.t1)bcp 導出:bcp $table out $file -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $server -U $user -P $passbcp 導入:bcp $table in $file -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $server -U $user -P $pass| 參數 | 說明 |
|---|---|
-c | 使用字元資料類型 |
-t ',' | 欄位分隔符為逗號 |
-b 5000 | 每批次 5000 列 |
-a 49152 | 網路封包大小 48KB |
-b 批次大小以優化效能完整的 bcp.pl 腳本程式碼已包含上述所有邏輯,可直接部署使用。建議根據實際需求調整預設參數與錯誤處理機制。