Share via


SQL Server 2014 Express LocalDB

Microsoft SQL Server 2014 Express LocalDB 是以程式開發人員為目標SQL Server Express的執行模式。 LocalDB安裝會複製啟動資料庫引擎SQL Server所需的最小檔案集。 安裝之後 LocalDB ,開發人員會使用特殊連接字串來起始連線。 連線時,會自動建立並啟動必要的SQL Server基礎結構,讓應用程式使用資料庫,而不需要複雜或耗時的設定工作。 Developer Tools 為開發人員提供 SQL Server 資料庫引擎,讓他們撰寫和測試 Transact-SQL 程式碼,而不需要管理 SQL Server 的完整伺服器執行個體。 SQL Server Express LocalDB 的實例是使用 SqlLocalDB.exe 公用程式來管理。 LocalDBSQL Server Express應該用來取代SQL Server Express使用者實例功能。

安裝 LocalDB

安裝 LocalDB 的主要方法是使用 SqlLocalDB.msi 程式。 LocalDB是安裝 SQL Server 2014 Express 的任何 SKU 時的選項。 在 LocalDB 安裝SQL Server Express期間選取 [功能選取] 頁面上。 每個主要SQL Server Database Engine 版本只能安裝 LocalDB 一個二進位檔。 多個資料庫引擎處理序可以啟動,而且全部都會使用相同的二進位檔案。 啟動 LocalDB 的 SQL Server Database Engine 實例,其限制與SQL Server Express相同

描述

安裝程式 LocalDB 會使用 SqlLocalDB.msi 程式在電腦上安裝必要的檔案。 安裝之後, LocalDB 即為可建立和開啟SQL Server資料庫的SQL Server Express實例。 資料庫的系統資料庫檔案儲存在使用者本機上通常處於隱藏狀態的 AppData 路徑。 例如C:\Users\ < user > \AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\。 使用者資料庫檔案會儲存在使用者指定的位置,通常是C:\Users\user > \ < Documents\資料夾中的某處。

如需在應用程式中納入 LocalDB 的詳細資訊,請參閱 Visual Studio 檔本機資料概觀、逐步解說:建立SQL Server LocalDB 資料庫,以及逐步解說:連線至SQL Server LocalDB 資料庫中的資料 (Windows Forms)

如需 API 的詳細資訊 LocalDB ,請參閱SQL Server Express LocalDB 實例 API 參考LocalDBStartInstance 函式

SqlLocalDb 公用程式可以建立 的新實例、啟動和停止 的實例 LocalDBLocalDB ,並包含可協助您管理 LocalDB 的選項。 如需 SqlLocalDb 公用程式的詳細資訊,請參閱 SqlLocalDB 公用程式

LocalDB 實例定序會設定為 SQL_Latin1_General_CP1_CI_AS,而且無法變更。 通常支援資料庫層級、資料行層級和運算式層級定序。 自主資料庫遵循 Contained Database Collations所定義的中繼資料和 tempdb 定序規則。

Restrictions

LocalDB 不能是合併式複寫訂閱者。

LocalDB 不支援 FILESTREAM。

LocalDB 只允許 Service Broker 的本機佇列。

內建帳戶所擁有的實例 LocalDB ,例如 NT AUTHORITY\SYSTEM 可能會因為 Windows 檔案系統重新導向而發生管理性問題;請改用一般 Windows 帳戶作為擁有者。

自動和具名執行個體

LocalDB 支援兩種實例:自動實例和具名實例。

  • LocalDB 自動實例是公用的。 這些執行個體會自動為使用者建立及管理,並且可供任何應用程式使用。 在使用者電腦上安裝的每個版本 LocalDB 都有一個 自動 實例 LocalDB 。 的 LocalDB 自動實例提供順暢的實例管理。 無需建立執行個體,它就會運作。 這允許應用程式輕鬆安裝和移轉到另一部電腦。 如果目標電腦已安裝指定的 LocalDB 版本,該目標電腦可以使用此版本的 LocalDB 自動執行個體。 的 LocalDB 自動實例具有屬於保留命名空間之實例名稱的特殊模式。 這可防止名稱與 的 LocalDB 具名實例發生衝突。 自動執行個體的名稱是 MSSQLLocalDB

  • LocalDB 具名實例是私用的。 這些執行個體是由負責建立及管理該執行個體的單一應用程式所擁有。 具名執行個體與其他執行個體隔離,並透過減少與其他資料庫使用者的資源競爭來提高效能。 具名實例必須由使用者透過 LocalDB 管理 API 明確建立,或透過受控應用程式的app.config檔案隱含建立,但受控 (應用程式可能也會視需要使用 API) 。 的每個具名實例 LocalDB 都有一個相關聯的 LocalDB 版本,指向個別的 LocalDB 二進位檔集。 的 LocalDB 實例名稱是 sysname 資料類型,最多可以有 128 個字元。 (這與SQL Server的一般具名實例不同,其會將名稱限制為 16 個 ASCII chars.) 實例 LocalDB 的名稱可以包含檔案名內合法的任何 Unicode 字元。 使用自動執行個體名稱的具名執行個體會成為自動執行個體。

電腦的不同使用者可有同名的執行個體。 每個執行個體都是以不同使用者身分執行的不同處理序。

LocalDB 的共用執行個體

若要支援電腦多個使用者需要連線到 的單一實例的案例, LocalDB 支援實例 LocalDB 共用。 執行個體擁有者可以選擇允許電腦上的其他使用者連接到他的執行個體。 可以共用 的 LocalDB 自動和具名實例。 若要共用 LocalDB 執行個體,使用者必須為它選取共用名稱 (別名)。 因為電腦上的所有使用者都可以看到共用名稱,此共用名稱在電腦上必須是唯一的。 實例 LocalDB 的共用名稱稱的格式與 的 LocalDB 具名實例相同。

只有電腦上的系統管理員可以建立 的 LocalDB 共用實例。 的共用實例 LocalDB 可由系統管理員或共用實例 LocalDB 的擁有者取消共用。 若要共用和取消共用 的實例 LocalDB ,請使用 LocalDBShareInstance API 的 LocalDBLocalDBUnShareInstance 方法,或 SqlLocalDb 公用程式的共用和未共用選項。

啟動 LocalDB 以及連接到 LocalDB

連接到自動執行個體

最簡單的使用 LocalDB 方式是使用連接字串 「Server= (localdb) \MSSQLLocalDB;Integrated Security=true」連線到目前使用者所擁有的自動實例。 若要使用檔案名稱來連接到特定的資料庫,請使用類似於 "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf"的連接字串進行連接。

注意

第一次在電腦上的使用者嘗試連線 LocalDB 到 時,必須同時建立並啟動自動實例。 建立執行個體所需的額外時間可能會導致連接嘗試失敗並顯示逾時訊息。 發生這種情況時,請等候幾秒鐘,讓建立程序完成,然後再重新連接。

建立及連接到具名執行個體

除了自動實例之外, LocalDB 也支援具名實例。 使用SqlLocalDB.exe程式來建立、啟動和停止 的 LocalDB 具名實例。 如需 SqlLocalDB.exe 的詳細資訊,請參閱 SqlLocalDB 公用程式

REM Create an instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1  
REM Start the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1  
REM Gather information about the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1  

以上最後一行傳回的資訊如下所示。

名稱 "LocalDBApp1"
版本 <目前的版本>
共用名稱 ""
擁有者 "<您的 Windows 使用者>"
自動建立
State 執行中
上次啟動時間 <日期和時間>
執行個體管道名稱 np:\\.\pipe\LOCALDB#F365A78E\tsql\query

注意

如果您的應用程式使用 4.0.2 之前的 .NET 版本,您必須直接連接到 的 LocalDB 具名管道。 實例管道名稱值是 實例正在接聽的 LocalDB 具名管道。 LOCALDB# 之後的實例管道名稱部分會在每次啟動 實例 LocalDB 時變更。 若要使用 SQL Server Management Studio 連接到 的 LocalDB 實例,請在 [連接到 Database Engine] 對話方塊的 [伺服器名稱] 方塊中輸入實例管道名稱。 從您的自訂程式,您可以使用類似之連接字串來建立 與 實例的 LocalDB 連線 SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

連接到 LocalDB 的共用執行個體

若要連線至的共用實例 LocalDB ,請將 .\ (點 + 反斜線) 連線至連接字串,以參考保留給共用實例的命名空間。 例如,若要連接到具名 AppDataLocalDB 共用實例,請使用連接字串,例如 (localdb)\.\AppData 連接字串的一部分。 連線到其不擁有共用 LocalDB 實例的使用者必須擁有 Windows 驗證或SQL Server驗證登入。

疑難排解

如需疑難排解的相關資訊,請參閱針對SQL Server 2012 Express LocalDB 進行疑難排解LocalDB

權限

SQL Server 2014 Express LocalDB 的實例是由使用者為其使用所建立的實例。 電腦上的任何使用者都可以使用 的實例 LocalDB 來建立資料庫,並將檔案儲存在其使用者設定檔底下,並在其認證下執行進程。 根據預設,實例 LocalDB 的存取權僅限於其擁有者。 中包含的 LocalDB 資料受到檔案系統對資料庫檔案的存取所保護。 如果使用者資料庫檔案儲存在共用位置,則具有檔案系統存取該位置的任何人都可以使用自己擁有的 LocalDB 實例來開啟資料庫。 如果資料庫檔案位於受保護的位置,例如使用者資料夾,則只有該使用者和擁有該資料夾存取權的任何系統管理員才可以開啟資料庫。 檔案 LocalDB 一次只能由 一個 實例 LocalDB 開啟。

注意

LocalDB 一律會在使用者安全性內容下執行;也就是說, LocalDB 絕不會使用來自本機系統管理員群組的認證來執行。 這表示實例所使用的 LocalDB 所有資料庫檔案都必須使用擁有使用者的 Windows 帳戶來存取,而不考慮本機 Administrators 群組的成員資格。

另請參閱

SqlLocalDB 公用程式