升級舊專案中SQLLocalDb v11.0至v12.0
舊專案裡保留著測試用的SqlLocalDb(*.mdf)檔案,在Visual Studio 2015開啟後會有一些提示,可以看到專案圖示明顯不同,也能看到提示訊息明確指出SqlLocalDb有版本上的差異。查了目前這台電腦,因為SSD空間有限,除了Visual Studio 2015之外,並無額外再安裝MS SQL Server (Express),查詢程式與功能確定Visual Studio 2015有安裝Microsoft SQL Server 2014 Express LocalDB。還要下載Microsoft SQL Server 2012 Express LocalDB?沒那麼笨吧!
試著點擊LocalDb(*.mdf),這次得到的線索很明確了。
SQLLocalDb v11.0至v12.0的執行個體名稱
嘗試使用SSMS透過熟悉的(localdb)\v11.0連線至SQLLocalDb v11.0,發現是無法連線的。在程式與功能>可以看到版號已經升版,所以改為(localdb)\v12.0就可以了嗎?不用試,不行。
請出秘密武器SqlLocalDB.exe。在cmd.exe或powershell下個sqllocaldb /?就能查詢所有參數。
sqllocaldb i {執行個體}查詢:
答案呼之欲出,經官方SQL Server 2014 Express LocalDB文件的證實,SQL Server 2014 Express LocalDB預設執行個體名稱改為MSSQLLocalDB,也就是說,SQL Server 2014 Express LocalDB正確的連線伺服器名稱應為(localdb)\MSSQLLocalDB。
升級為SQLLocalDb v12.0
開啟專案web.config,連線字串是舊版(localdb)\v11.0無誤:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\LocalTestDb.mdf;Initial Catalog=aspnet-20141202044803;Integrated Security=True" providerName="System.Data.SqlClient"/>
只需取代(或更新)連線伺服器名稱為現行SQL Server 2014 Express LocalDB的連線伺服器名稱即可。千萬不要乖乖的去下載2012 Express LocalDB來安裝,裝也裝不起來,因為同時間只能安裝一個版本的LocalDB。
<add name="DefaultConnection" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\LocalTestDb.mdf;Initial Catalog=aspnet-20141202044803;Integrated Security=True" providerName="System.Data.SqlClient"/>
我電腦同時存在sql 2012 和 sql 2014 的 localdb 執行個體
回覆刪除