使用BCP快速大容量匯出或匯入資料庫資料
阿新 • • 發佈:2021-12-23
Sql Server資料庫較大時,備份整庫檔案較慢。使用 BCP 既可以快速大容量匯出庫表資料到txt文件中,也可以快速匯入本地資料檔案。本文介紹了使用BCP進行資料備份和匯入的方法。
備份
新建txt文件,複製貼上下方程式碼塊。其中,@echo off用於關閉回顯,echo ...... 為輔助顯示部分。
@echo off set database=phoenix set db_server=127.0.0.1 set user=sa set password=password echo Start bcping out %database%... set start=%time% echo cuurent path %cd% echo ============== Config============== bcp %database%..Equipment out Equipment.txt -S%db_server% -c -U%user% -P%password% echo Finish bcp ing out %database% echo %start% ~ %time% PAUSE
需要修改set部分的資料庫名稱、資料庫伺服器ip地址、資料庫登入使用者名稱、資料庫登入密碼;
需要修改核心語句:
bcp %database%..Equipment out Equipment.txt -S%db_server% -c -U%user% -P%password%
該語句用於匯出資料庫中的Equipment表的全部內容到Equipment.txt中,後續可用於資料匯入。
根據實際表名進行修改,若需要複製其它表,再複製該行語句即可。
如:
bcp %database%..Equipment1 out Equipment1.txt -S%db_server% -c -U%user% -P%password% bcp %database%..Equipment2 out Equipment2.txt -S%db_server% -c -U%user% -P%password%
修改完成後將txt文件重新命名為xx.bat檔案,執行即可(注意保證和伺服器網路是通的)。
匯入
和匯出操作類似,注意該批處理檔案會先執行刪除原表內容,再將本地的資料檔案進行匯入,請確認是否操作再進行執行。完整程式碼塊如下:
@echo off set database=phoenix set db_server=127.0.0.1 set user=sa set password=passowrd echo Start bcping in %database%... set start=%time% echo cuurent path %cd% echo ==============classify============== Osql -S%db_server% -d%database% -U%user% -P%password% -Q"delete from Equipments" bcp %database%..Equipments in Equipments.txt -S%db_server% -c -U%user% -P%password% echo Finish bcp ing in %database% echo %start% ~ %time%