SqlLocalDB學習筆記

SqlLocalDb的好,只有用過才知道

在使用Visual Studio 2012與以往有個很大的不同點,就是越來越少碰原生的SSMS管理工具,原因之一是Visual Studio 2012內建了SQL Server的管理工具,原因之二就是預設使用SqlLocalDb。所以在進行開發工作時,可以很方便的在Visual Studio 2012中完成基礎的資料庫工作。

SqlLocalDb.exe分享參數

學習SqlLocalDb的話,首推Will的「SQL Server 2012 Express LocalDB (SqlLocalDB) 深入剖析」,不過在假日的早晨,突然看到Will發佈了秘密影片,在大小寶貝的攻擊之下,根本無法進入學習模式,只好邊看一些,邊寫一些。

如果想要對SqlLocalDb有進一步的操作,就必須對於sqllocaldb.exe有多一分瞭解。影片有提到,原始sqllocaldb.exe的說明很爛,注意以下兩個參數:

share|h ["擁有者SID或帳戶"] "InstanceName" "ShareName"
使用指定的ShareName共用指定的InstanceName。若省略使用者SID或帳戶名稱,預設為目前使用者。
unshare|u "InstanceName"
停止共用指定的共用LocalDB執行個體。

改成英文來看就清楚一些了。

重點筆記

  • SqlLocalDb無法遠端連接,但可以共用。共用是指是否Share給本機的另一使用者。
  • 管線名稱,用可在舊版的SSMS 2008工具上。
  • SqlLocalDb無連線時,會自動停止。

另外,影片最後說到一個重點,在多人開發的資料庫的部分,以前可能需要一台專門的資料庫測試機,大家都必須把資料庫都設定在測試機裡,如果你是在本機進行開發與測試,簽入版本控制後,其他開發人員會因為沒有你的測試資料庫而產生問題。但如果使用SqlLocalDb來當測試資料庫,以ASP.NET MVC為例,它會包含在App_Data目錄之下,一、它很小,二、移植方便。很小,所以不用擔心它會浪費多少空間。移植方便是指,取得的開發人員,只需要在Visual Studio 2012內對App_Data目錄下的SqlLocalDb資料庫檔案點擊兩下,就可以取得使用權限。想想以前,如果要把A電腦裡的SQL Server Express範例資料庫移至B電腦裡的SQL Server Express中,要費多少工。

新增刪除SqlLocalDb的Instance注意事項

假設,我們新增一個Projects的執行個體,例如執行「sqllocaldb c Projects」,可以在「C:\Users\UserName\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances」會多出一個Projects的目錄,此目錄預設大小約26.1MB,如果刪除的話,例如執行「sqllocaldb d Projects」,此目錄不會被完全刪除,*.log、*.trc、*.xel不會被刪除,預設大小約3.3MB。

如果有大量使用SqlLocalDb,要多注意目錄v11.0與自建執行個體的目錄的內容。雖然以目前硬碟的大小,要成長到爆掉需要一段時間,但在一些Notebook上是很有可能的。因為這些Notebook預設的磁碟分割很怪,明明硬碟就很大,然後C:就給預設切個50GB,重灌費時費力,例如,最新的Windows 8,你要重灌,可能官網都還沒有驅動程式,那怎麼灌?

因為SqlLocalDb預設路徑在C:之下,如果你用很大,有空請多注意哦!

2 則留言:

  1. 您好:

    請問

    1.SqlLocalDB只能用VS2012開發嗎?

    2.SqlLocalDB適合用來取代SqlLite及Access做為Local的Database嗎?

    謝謝

    回覆刪除
  2. 一、
    http://www.microsoft.com/zh-tw/download/details.aspx?id=29062

    可以參考一下「支援作業系統」,只要能安裝就能使用。不過,想不透過 sqllocaldb.exe 指令來管理的話,確實是 Visual Studio 2012 / 2013 會比較好。

    二、
    不合適,它的定位點在「開發測試」階段,方便開發人員很容易就擁有資料庫環境,不用為了「測試資料庫」這件事而煩腦。其他開發人員取得檔案後,只需要在VS裡點兩下就完成了。

    Local Database 還是選 Access / SqlLite 之類比較合適。

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。