SQL Server Express LocalDB

適用于:SQL Server

Microsoft SQL Server Express LocalDB 是 SQL Server Express 的功能,專供開發人員使用。 SQL Server Express with Advanced Services 中也會提供。

LocalDB 安裝會複製啟動資料庫引擎SQL Server所需的最小檔案集。 安裝 LocalDB 後,您可以使用特殊連接字串來起始連線。 連線時,系統會自動建立並啟動必要的SQL Server基礎結構,讓應用程式不需要複雜的設定工作即可使用資料庫。 開發人員工具可為開發人員提供SQL Server Database Engine,讓他們撰寫及測試 Transact-SQL 程式碼,而不需要管理SQL Server的完整伺服器實例。

安裝媒體

LocalDB 是您在安裝 SQL Server Express 期間選取的功能,而且可以在下載媒體時使用。 如果您下載媒體,請選擇 [快速進階 ] 或 [ LocalDB ] 套件。

Visual Studio 2019 和 2022 客戶應該安裝 SQL Server Express 2019。

LocalDB 安裝程式 SqlLocalDB.msi 可在 Express Core 以外的所有版本的安裝媒體中使用。 它位於 <installation_media_root>\<LCID>_ENU_LP\x64\Setup\x64 資料夾中。 LCID 是地區設定識別碼或語言代碼。 例如,LCID 值為 1033 是指 en-US 地區設定。

或者,您可以透過Visual Studio 安裝程式資料儲存和處理工作負載、ASP.NET 和 Web 開發工作負載或個別元件來安裝 LocalDB。

安裝 LocalDB

透過安裝精靈或使用 SqlLocalDB.msi 程式安裝 LocalDB。 LocalDB 是安裝 SQL Server Express LocalDB 時的選項。

在安裝期間,在 [功能選取]/[共用功能] 頁面上選取 [LocalDB]。 每個主要SQL Server Database Engine 版本只能安裝 LocalDB 二進位檔案。 您可以啟動多個資料庫引擎進程,而且全都會使用相同的二進位檔。 SQL Server Database Engine 實例以 LocalDB 啟動,其限制與SQL Server Express相同。

SQL Server Express LocalDB 的實例是使用 SqlLocalDB.exe 公用程式來管理。 SQL Server Express LocalDB 應該用來取代已被取代SQL Server Express使用者實例功能。

描述

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

如需在應用程式中包括 LocalDB 的詳細資訊,請參閱 Visual Studio 本機資料概觀建立資料庫並在 Visual Studio 中新增資料表

如需有關 LocalDB API 的詳細資訊,請參閱 SQL Server Express LocalDB 參考

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

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

限制

  • LocalDB 無法透過SQL Server Management Studio從遠端系統管理。

  • 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的一般具名實例不同,這會限制名稱為 15 ASCII chars.) LocalDB 實例的名稱可以包含檔案名內合法的任何 Unicode 字元。 使用自動執行個體名稱的具名執行個體會成為自動執行個體。

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

LocalDB 的共用執行個體

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

僅電腦上的系統管理員可以建立 LocalDB 共用執行個體。 LocalDB 共用執行個體可由系統管理員或 LocalDB 共用執行個體的擁有者取消共用。 若要共用及取消共用 LocalDB 執行個體,請使用 LocalDB API 的 LocalDBShareInstanceLocalDBUnShareInstance 方法,或 SqlLocalDB 公用程式的共用和取消共用選項。

啟動 LocalDB 以及連線到 LocalDB

連線到自動執行個體

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

LocalDB 格式的命名慣例和連接字串在 SQL Server 2014 中已變更。 先前,執行個體名稱是單一 v 字元,後面接著 LocalDB 和版本號碼。 從 SQL Server 2014 開始,已不再支援此執行個體名稱格式,應改為使用先前所述的連接字串。

注意

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

建立並連線到具名執行個體

除了自動執行個體之外,LocalDB 也支援具名執行個體。 您可以使用 SqlLocalDB.exe 程式來建立、啟動及停止 LocalDB 的具名執行個體。 如需 SqlLocalDB.exe 的詳細資訊,請參閱 SqlLocalDB 公用程式

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

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

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

注意

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

連線到 LocalDB 共用執行個體

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

疑難排解

如需有關針對 LocalDB 進行疑難排解的詳細資訊,請參閱針對 SQL Server 2012 Express LocalDB 進行疑難排解 \(英文\)。

權限

SQL Server Express LocalDB 執行個體是使用者為了自用而建立的執行個體。 電腦上的任何使用者都可以使用 LocalDB 執行個體建立資料庫、在其使用者設定檔之下儲存檔案,並在其認證之下執行此處理序。 根據預設,對 LocalDB 執行個體的存取只限其擁有者。 LocalDB 中所容納的資料受到資料庫檔案之檔案系統存取的保護。 如果使用者資料庫檔案儲存在共用位置,擁有該位置之檔案系統存取權的任何人都可以使用其擁有的 LocalDB 執行個體開啟資料庫。 如果資料庫檔案位於受保護的位置,例如使用者資料夾,則只有該使用者和擁有該資料夾存取權的任何系統管理員才可以開啟資料庫。 LocalDB 檔案一次只能由一個 LocalDB 執行個體開啟。

注意

LocalDB 永遠都會在使用者安全性內容之下執行,也就是說,LocalDB 絕對不會使用本機系統管理員群組的認證執行。 這表示,LocalDB 執行個體使用的所有資料庫檔案都必須可使用擁有使用者的 Windows 帳戶存取,而不必考量本機系統管理員群組的成員資格。

另請參閱