[SQL Server] 利用指令碼降級備份與還原

筆者今天接收同事傳來的 SQL Server Backup 檔案,在還原時卻發生錯誤,訊息顯示備份的版本與此伺服器不相容。而這篇文章會告訴大家如何利用 SQL Script 來備份資料庫(或內容)與還原的方式。

圖 1 還原失敗訊息

備份

首先,對要備份的資料庫按下右鍵,並選擇「工作 -> 產生指令碼」。

圖 2 產生指令碼

按下產生指令碼後會跳出一視窗告訴你即將產生資料庫物件的指令碼,是否要繼續產生程序,按下下一步。

圖 3 產生指令碼視窗

接下來選擇是要編寫整個資料庫與所有資料庫物件(資料表或其他)或是自己選取特定的資料庫物件。

圖 4 編寫整個資料庫與所有資料庫物件

圖 5 選取特定的資料庫物件

再來選擇指令碼的儲存或發行方式,筆者這邊示範的是儲存為檔案。接著要開始對發布做設定(在設定中亦可選擇是否要連同資料一起備份),因此先按下「進階」按鈕。

圖 6  指令碼的儲存或發行方式

在進階編寫指令碼選項中的一般標籤內設定指令碼資料類型與目標伺服器。

圖 7 進階編寫指令碼選項

1. 要編寫指令碼的資料類型:編寫指令碼的資料類型中,結構描述表示資料庫與其物件,資料表示資料庫中的資料。

圖 8 要編寫指令碼的資料類型選項

2. 針對伺服器版本編寫指令碼:表示目標伺服器平台(SQL Server)的版本。

圖 9 針對伺服器版本編寫指令碼選項

選擇完畢後按下確定並繼續下一步,視窗將會再次顯示方才所做的設定給予使用者檢視,若沒有問題就按下下一步開始編寫指令碼。

圖 10 檢閱選取的項目與設定

最後就等待指令碼完成編寫並儲存(或發布)。

圖 11 儲存或發布指令碼狀態


還原

開啟 CMD.exe,並輸入下列指令以指令碼還原資料庫:
sqlcmd -S <Server> -i <Script File>

若要將結果輸出至檔案,只需要在指令後方加上 -o 參數,如:
sqlcmd -S <Server> -i <Script File> -o <Output File>

留言

這個網誌中的熱門文章