[HowTo] 如何匯出 Azure SQL database 至本機資料庫(使用 BACPAC)

阿蘇卡
Oct 27, 2020

--

開發階段需要測試資料庫時,有時不方便直接連上系統操作,萬一程式出錯,修復資料的難度比修正程式困難多了 (還有可能沒辦法完全回復)。

因此,使用 BACPAC 將 Azure SQL database 建置於本機進行測試。

資料層應用程式 (Data-Tier Application, DAC) 定義與使用者資料庫相關聯的所有 SQL Server 物件,例如 table、view、stored procedure、以及使用外部資料表的登入的物件。

將 SQL Server 物件包裝為可攜式成品,稱為 DAC 封裝,又稱為 DACPAC。DAC 為資料庫佈署的單位,實現自動化資料庫佈署。

BACPAC 是相關的成品,會封裝資料庫結構描述,以及在資料庫中儲存的資料;也就是說 BACPAC = DACPAC + Data。

前置

  1. 安裝 SSMS
  2. 設定本機資料庫

匯出操作步驟

1. 連線至 Azure SQL database 後,在欲匯出的 database 上按下右鍵,選擇 Tasks > Export Data-tier Application

2. 出現設定畫面:

按下 Next 進入設定

3. 首先選擇要匯出的目的端:本地或是 Azure 儲存體。

為求重複匯入便利性,以及省錢,我選擇存在本地。

如果有不想匯入的資料表,可以在 Advanced 頁籤中設定。

像是我要匯入的資料庫中,包含了 HangFire 排程工作資料表,記得取消勾選,節省匯出時間與檔案空間。

設定後回到 Settings 頁籤中按下 Next

4. 確認設定內容

5. 執行完畢後會顯示執行結果,如果執行過程中發生錯誤,根據錯誤訊息可修正後再重新執行匯入。

匯入操作步驟

1. 在 SSMS 開啟本機資料庫,在 Databases 資料夾中選擇 Import Data-tier Application 選項

2. 顯示匯入設定畫面

3. 選擇剛剛匯出的 BACPAC 檔後,按下 Next

4. SSMS 會根據 BACPAC 檔名作為預設資料庫名稱,可以在此調整後按下 Next

5. 確認設定,沒問題就按下 Finish,等待匯入完成

6. 檢視匯入執行結果

以上內容如果對各位有幫助,請給我個掌聲或留言鼓勵吧

--

--

阿蘇卡
阿蘇卡

Written by 阿蘇卡

後端工程師。記錄下自己開發路上踩過的坑、研究過後的心得,希望對自己好,對其他工程師也好~

No responses yet