The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何下載與升級 SQL Server Express LocalDB 到最新版

早期的 SQL Server Express LocalDB 還蠻簡單的,隨便搜尋就可以下載的到,但是這幾年微軟的組織發展太快,網站的結構也有大幅異動,許多以前可以下載到的連結現在也都失效。不單單失效而已,我光是想要下載最新版 LocalDB 都要花上好幾分鐘才能找到連結。

專案需求

因為最近要幫客戶部署一個網站與資料庫到測試環境,而客戶提供的 SQL Server 資料庫使用 v14 版本,而我本機 LocalDB 的版本卻只有 v13 而已,因此無法還原資料庫。

我相信有許多人並不清楚 v13, v14v15 的意思,這裡建議可以參考以下網址查詢 RTM 版本與 SQL Server 產品名稱的對應關係:

簡言之,v13 就是 SQL Server 2016,而 v14 就是 SQL Server 2017,而 v15 就是 SQL Server 2019

如果你用 SSMS (SQL Server Management Studio) 連接 SQL LocalDB 的話,也可以很容易從伺服器連接得知目前 SQL Server 版本,如下圖示:

透過 SSM 查看 SQL Server 版本

下載 SQL Server 本地資料庫 (LocalDB)

我想大家都一樣,下載 LocalDB 的第一步,就是上網搜尋這個關鍵字:SQL LocalDB Download

但是在網路上最容易找到的版本為 Microsoft® SQL Server® 2012 Express,這是最早期的版本,這可是 v11 啊,完全不能用!

除此之外,你找到的就是 SQL Server Express LocalDB - SQL Server | Microsoft Docs 這份官方文件,而且提供的下載連結是錯誤的,他會自動幫你轉向到 SQL Server 的產品官網,即便你點擊 立即試用 到下載頁面,也完全找不到 LocalDB 的下載選項,這點真的是有點困擾!

這裡有個重要的觀念一定要跟大家分享,那就是我們常用的 LocalDB 其實是 SQL Server Express 產品的一部份,如果你要安裝最新版的 SQL Server LocalDB,那就要下載 SQL Server Express 的安裝檔。這個安裝檔其實很小,只有 5.07MB 而已,下載後的檔名是 SQLServer2017-SSEI-Expr.exe

執行安裝程式後的畫面如下:

下載媒體

接著請點選 LocalDB (46 MB) 封裝、選取下載位置,然後按下 下載 按鈕

下載

下載成功後按下 開啟資料夾 按鈕

開啟資料夾

接著只要執行已下載的 SqlLocalDB.msi 安裝檔,即可將最新版 SQL LocalDB 安裝完成!

如何將現有執行個體升級

即便你安裝好新版的 SQL Server LocalDB,你現有的 SQL LocalDB 執行個體並不會自動升級,他還是執行舊版的 SQL Server 版本,因此你有兩個選項:

  1. 保留舊的 LocalDB 執行個體,建立一個全新的執行個體

    假設新的執行個體名稱為 MSSQLLocalDBV14,你只要輸入以下命令即可建立:

    sqllocaldb create MSSQLLocalDBV14
    
  2. 停止並刪除現有 MSSQLLocalDB 執行個體,並重建 MSSQLLocalDB 執行個體

    你可以先列出現有的 LocalDB 執行個體清單:

    sqllocaldb info
    

    透過輸入以下命令來進行 LocalDB 重建:

    sqllocaldb stop MSSQLLocalDB
    sqllocaldb delete MSSQLLocalDB
    sqllocaldb create MSSQLLocalDB
    

    重建的過程並不會移除資料庫檔案,但是在重建之後資料庫要自行 Attach 回去,預設資料庫檔案都會放在 %USERPROFILE% 使用者 Home 目錄下。重建後 Attach 資料庫的 T-SQL 指令碼如下範例:

    USE [master]
    GO
    CREATE DATABASE [SampleDB] ON
    ( FILENAME = N'C:\Users\User\SampleDB.mdf' ),
    ( FILENAME = N'C:\Users\User\SampleDB_log.ldf' )
    FOR ATTACH
    GO
    

關於 SQL LocalDB 的各種別名

微軟家大業大,一直改名就不說了,主要是同樣一個產品有好多種版本編號,光是一個 SQL LocalDB 就有很多種說法。

  • 不含版本號的寫法
    • LocalDB
    • SQL LocalDB
    • MSSQLLocalDB
    • SQL Server LocalDB
    • SQL Server Express LocalDB
  • 包含版本號的寫法
    • SQL LocalDB v11 (SQL Server 2012 Express LocalDB)
    • SQL LocalDB v12 (SQL Server 2014 Express LocalDB)
    • SQL LocalDB v13 (SQL Server 2016 Express LocalDB)
    • SQL LocalDB v14 (SQL Server 2017 Express LocalDB)
    • SQL LocalDB v15 (SQL Server 2019 Express LocalDB)
    • SQL LocalDB v16 (SQL Server 2022 Express LocalDB)
    • SQL Server 2012 LocalDB
    • SQL Server 2014 LocalDB
    • SQL Server 2016 LocalDB
    • SQL Server 2017 LocalDB
    • SQL Server 2019 LocalDB
    • SQL Server 2022 LocalDB

相關連結

留言評論