當資料表數量龐大,手寫 BCP 命令極為繁瑣。可利用系統目錄檢視快速產生批次檔,實現全庫資料的自動化匯出與匯入。
查詢 sysobjects (類型 'U' 為使用者資料表),動態拼接 BCP 命令字串:
SELECT 'bcp ' + DB_NAME() + '..' + name + ' out ' + 'D:\backup\' + name + '.out -n -S' + @@SERVERNAME + ' -Usa -Ppassword'
FROM sysobjects WHERE type = 'U'
backup.bat。Data 子目錄,備份檔將輸出於此。backup.bat 即可完成全庫備份。將查詢中的 out 改為 in,產生 restore.bat,即可批次將資料導回資料庫。
BULK INSERT 或 SSIS 取得更佳效能與錯誤處理。