標籤:blog 使用 os 檔案 資料 io for 代碼
應公司策劃要求,需要一個資料庫按表匯入匯出的工具配合svn來進行差異匹配,方便策劃每天對資料庫修改的記錄工具,我使用bcp命令實現如下批處理工具,中間踩了不少坑,現儲存在這邊希望可以幫到需要此工具的同學。
::資料庫地址set ip=127.0.0.1::資料庫帳號set login=sa::資料庫密碼set passward=Passward::資料庫名稱set dataBase=MyDBName::儲存txt檔案的路徑set filePath=d:\data::匯入到資料庫 (這邊的way注釋掉上面的in則是從資料庫匯出到txt,注釋掉下面的則是從txt匯入到資料庫)::set way=in::匯出到txt文本set way=out::這邊先建立檔案夾,按個人需求改md %filePath%::這邊填寫資料庫表名set dataTable=table1 table2 table3 table4 table5 table6::這邊是根據匯入還是匯出進行一個刪除資料庫表的操作,因為bcp匯入到資料庫時如果原先資料庫有資料會出現重複鍵不讓插入的錯誤導致插入失敗if %way% == in (for %%i in (%dataTable%) do osql -S %ip% -U%login% -P%passward% -Q "TRUNCATE TABLE %dataBase%..%%i" )::這邊是一個表資料的匯入匯出操作,使用bcp命令for %%i in (%dataTable%) do bcp %dataBase%..%%i %way% %filePath%%%i.txt -c -S %ip% -U%login% -P%passward%pause
將代碼複製到txt檔案中,修改相應參數,儲存檔案為bat格式即可使用,sqlserver 2008 sqlserver2012測試可使用
bcp命令需要安裝SQLManagementStudio工具,關於工具就不再描述了,網上可以搜到很多資料