Windows Azure - 將使用SQL Server Express的舊專案轉移到LocalDB

22 June 2012 — Written by Sky Chang
#Azure#SQL Server#Visual Studio

最近因為太愛用Visual Studio 2012 RC了( 主要是因為他的黑色介面XDD ),再加上Azure SDK可以正常的支援了,所以也將很多專案慢慢地轉到Visual Studio 2012 RC上來 ( 其實是一兩個實驗用的專案… ),而新的Windows Azure,預設會使用IIS Express,而資料庫呢,則會使用LocalDB,所以第一次開啟使用SQL Server Express的舊專案的時候,又沒裝SQL Server Express的話,他會跳出這個視窗。

圖片 1

Web 專案 'xxx' 需要SQL Server Express,該程式未安裝這部電腦上。Vistual Studio 2012的建議資料庫引擎為SQL Server LocalDB Express。…

如何解決

首先,如果對於LocalDB不了解的話,可以看Rico大的這篇文章和這篇文章;然後我們就開始進行轉換的步驟吧!

從伺服器總管匯入資料庫!

雖然上圖的說明說,可以點兩下進行升級,但小弟沒試過就是了,小弟是參考MSDN的升級流程;首先,我們在Visual Studio 2012開啟伺服器總管。

image

接下來,我們在伺服器總管的地方,按下下圖的按鈕,來連接到資料庫。

image

我們選擇如下圖的設定。

image

接下來,我們需要加入連線,伺服器名稱是(localdb)\xx,localdb是連接到LocalDB的字串,後面的XX,可以依據需要使用自己創建Instance,而預設的Instance為v11.0,然後選擇Windows 驗證,再選擇mdf的檔案,最後要Key上邏輯名稱。( 這個mdf檔案,是從SQL Server Express 拷貝出來的,原本預設的目錄,應該會在C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\ 底下,而拷貝出來的時候,別忘記也要把副檔名為log的檔案,一併拷貝出來喔!! ),這時,我們可以按下測試連接試試看。

image

如果發生如下圖問題,通常是因為LocalDB沒有啟動。

image

而如果出現下圖,是正常的,那我們只要回到加入連線的畫面( 也就是上上圖 ),然後按下確定,就可以升級了;但我們這邊先假設LocalDB沒啟動,所以我們來看看LocalDB怎樣啟動吧。

image

啟動LocalDB

首先,我們必需進入命令模式來啟動LocalDB,可以使用CMD,或是PowerShell;指令在C:\Program Files\Microsoft SQL Server\110\Tools\Binn\底下的sqllocaldb,我們可以鍵入sqllocaldb info來看看目前有哪些Instance,如下圖,目前有Study4TwAzure和v11.0,如果你想要建立一個xxxx的Instance,可以用create指令。

image

如果要起啟動,我們可以下sqllocaldb s “xxx”來進行啟動。

image

我們也可以用sqlllocaldb i “xxx”來查看目前Instance是否已經啟動了。

image

回到加入連線並完成升級

我們可以在按按看測試連接按鈕,如果出現下圖,雖然是錯誤,但只少可以確定LocalDB已經啟動起來了。

image

接下來,我們只要回到加入連線的畫面,並按下確定,就會出現下圖,問我們是否要立即升級資料庫檔案。

image

最後,我們就可以從伺服器總管看到資料庫被掛上去了,當然,程式的連線字串,也別忘記調整喔!!

image

這樣就完成了!!

後記

使用LocalDB的好處非常多!但因為還有像RicoCary小朱James等等,這些神人在,小弟就不多介紹LocalDB了,以免誤人子弟XDD;而這整個過程,雖然很簡單,MSDN也有中文的文件,但想說還是一邊弄一邊截圖( 也變成一種習慣了= = ),這樣大家按圖施工,速度也會比較快,也希望能幫助到需要的大家,謝謝。

參考資料

Sky & Study4.TW