我有一個專案從 VS2013 升 VS2015,裡面有一個 LocalDB 檔案副檔名為 *.mdf,當我在 VS 2015 雙擊該檔案後跳出以下視窗:
雖然有跳出錯誤訊息,但仍然可以在 Server Explorer 看到,不過他是紅色叉叉,於是我按下重新整理後跳出錯誤訊息, 如下圖:
記得 SQL Server 2014 一出來沒多久,就踩了 LocalDB 連線字串的雷,印象相當深刻,主要原因是 EF 在安裝時會幫我設定 v12.0,導致我的 Code First 專案在升級 SQL 後失敗
SQL Server 2014 LocalDB 當時候的文件執行個體是寫 v12.0,但其實是 MSSqlLocaldb;為此還特地回報給EF,現在 EF 6.1.3 已經會自動幫我們加入正確的執行個體名稱了,舊文:https://www.dotblogs.com.tw/yc421206/2014/04/22/144828
由於我的 *.mdf 檔案是在 VS 2013 下建立,我猜 VS 2013 會使用 SQL Server 2012 Express LocalDB 版本的執行個體,VS 2015 使用 SQL Server 2014 Express LocalDB 版本的執行個體 ,所以 VS 2015 要求我升級該檔案才能在 VS 2015 使用 SSDT 處理該檔案。
升級 LocalDB,步驟如下:
這裡要先釐清一些誤會,有些人會認為 LocalDB 是 VS IDE 所提供的功能,其實是
安裝 VS 2013 時,會安裝 SQL Server 2012 Express LocalDB, VS 2015 則是 SQL Server 2014 Express LocalDB,下表為 LocalDB 預設執行個體名稱
SQL Server Express | 預設執行個體 |
LocalDB 2012 | v11.0 |
LocalDB 2014 | MSSQLLocaldb |
SqlLocalDB.exe 用來管理 LocalDB 的應用程式,列舉我目前電腦 localdb 的執行個體,如下圖:
執行個體資料庫檔案位置
%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances
也能看出不同的執行個體,是分別散算在不同目錄,代表不同版本的執行個體,可共存,如下圖:
VS 內建 SQL 資料表管理,其實是 SSDT 套件
https://msdn.microsoft.com/zh-tw/library/mt204009.aspx
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET