今天工做遇到一個問題:數據庫原本再SQL Server2008中,如今須要備份一個數據庫到另外一臺服務器上,這臺服務器裝的事SQL Server2005。首先想到的是數據庫分離和數據庫備份,結果兩種方法都出現異常。最後想到將數據導出未SQL腳本,而後使用系統命令執行大文件SQL腳本。sql
因數據庫較大,數據較多,導出SQL腳本時選中分表存儲,最後導出的SQL文件基本都是2G左右,而且有大約50個文件,因此寫了一個批處理文件,進行批量執行,最後跑了大約5小時。數據庫
下面將附一個縮減版的批處理:服務器
::SQL2005使用osql命令,如果SQL2008使用sqlcmd命令 osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql echo 執行完成 pause
osql -S 服務器 -U 用戶名 -P 密碼 -i SQL路徑
附:SQL Server 2008執行大文件SQL腳本命令
cd C:\Program Files\Microsoft SQL Server\100\Tools\Binnspa
sqlcmd -S . -U sa -P 123 -d test -i data.sqlcode
參數說明:-S 服務器地址 -U 用戶名 -P 密碼 -d 數據庫名稱 -i 腳本文件路徑 blog
本地服務器地址能夠寫 . 比較輕鬆,也可寫(local)或者IP地址cmd