Microsoft SQL Server 2014 Express 是 SQL Server Express LocalDB 的執行模式,以程式開發人員為目標。
LocalDB 安裝會複製啟動 SQL Server 資料庫引擎所需的最少檔案集。 一旦安裝了 LocalDB ,開發人員便會使用特殊的連接字串啟動連接。 連線時,會自動建立和啟動必要的 SQL Server 基礎結構,讓應用程式使用資料庫,而不需要複雜或耗時的設定工作。 開發人員工具可以提供開發人員 SQL Server 資料庫引擎,讓他們撰寫及測試 Transact-SQL 程式代碼,而不需要管理 SQL Server 的完整伺服器實例。 SQL Server ExpressLocalDB 的實例是使用 SqlLocalDB.exe 公用程式來管理。 SQL Server ExpressLocalDB 應該用來取代已被取代的 SQL Server Express 用戶實例功能。
安裝 LocalDB
安裝 LocalDB 的主要方法是使用 SqlLocalDB.msi 程式。
LocalDB 是安裝任何 SQL Server 2014 Express SKU 時的選項。 在 SQL Server Express 安裝期間,於 [功能選取] 頁面上選取 LocalDB 。 在每一主要的 SQL Server Database Engine 版本中,只能有一個 LocalDB 二進位檔的安裝。 可以啟動多個資料庫引擎進程,而且全都會使用相同的二進位檔。 啟動為 LocalDB 的 SQL Server Database Engine 實例,其限制與 SQL Server Express 相同。
說明
安裝程式 LocalDB 會使用 SqlLocalDB.msi 程式,在計算機上安裝必要的檔案。 安裝之後,是 SQL Server Express 的實例, LocalDB 可以建立和開啟 SQL Server 資料庫。 資料庫的系統資料庫檔案會儲存在使用者本機 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 公用程式可以建立新的 LocalDB 實例、啟動和停止 LocalDB 實例,並包含可協助您管理 LocalDB 的選項。 如需 SqlLocalDb 公用程式的詳細資訊,請參閱 SqlLocalDB 公用程式。
LocalDB 的實例定序設定為 SQL_Latin1_General_CP1_CI_AS,且無法變更。 通常支援資料庫層級、數據行層級和表達式層級定序。 自主資料庫遵循 自主資料庫定序所定義的元數據和tempdb定序規則。
限制
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 字元的一般 NetBIOS 名稱。實例LocalDB的名稱可以包含檔名內合法的任何 Unicode 字元。 使用自動實例名稱的具名實例會變成自動實例。
計算機的不同使用者可以有具有相同名稱的實例。 每個實例都是以不同使用者身分執行的不同進程。
LocalDB 的共享實例
若要支援多位計算機用戶必須連線到 單一 實例的案例 LocalDB, LocalDB 支持實例共用。 實例擁有者可以選擇允許電腦上的其他用戶連線到他的實例。 可以共享的自動和具名實例 LocalDB 。 若要共用 LocalDB 的實例,使用者需為其選擇共用名稱(別名)。 由於計算機的所有使用者都可以看到共享名稱,因此此共用名稱在計算機上必須是唯一的。 實例 LocalDB 的共享名稱的格式與的 LocalDB具名實例相同。
只有電腦上的系統管理員可以建立 LocalDB 的共享實例。 的共享實例 LocalDB 可由系統管理員或 共用實例 LocalDB的擁有者取消共用。 若要共用和取消共用 的LocalDB實例,請使用 LocalDBShareInstance API 的 LocalDB 和 LocalDBUnShareInstance 方法,或 SqlLocalDb 公用程式的共用和未共享選項。
啟動LocalDB並連線到LocalDB
連接到自動執行個體
要使用LocalDB,最簡單的方法是使用連接字串 "Server=(localdb)\MSSQLLocalDB;Integrated Security=true" 來連接到目前使用者擁有的自動實例。 若要使用檔名連接到特定資料庫,請使用類似 「Server=(LocalDB)\MSSQLLocalDB」 的連接字串進行連線;整合式安全性=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 使用者>」 |
| 自動建立 | 否 |
| 國家 | 跑步 |
| 上次開始時間 | <日期和時間> |
| 實例管道名稱 | np:\\.\pipe\LOCALDB#F365A78E\tsql\query |
備註
如果您的應用程式使用 4.0.2 之前的 .NET 版本,您必須直接連接到 的 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 驗證登入。
故障排除
如需疑難解答的相關信息,請參閱針對 SQL Server 2012 Express LocalDB 進行疑難解答LocalDB。
權限
SQL Server 2014 ExpressLocalDB 的實例是由使用者為其使用所建立的實例。 計算機上的任何使用者都可以使用 的實例 LocalDB來建立資料庫,並將檔案儲存在其使用者配置檔下,並在其認證下執行進程。 根據預設,對實例 LocalDB 的存取僅限於其擁有者。 中包含的 LocalDB 數據會受到資料庫檔案的檔案系統存取所保護。 如果使用者資料庫檔案儲存在共用位置,則具有檔系統存取該位置的任何人都可以使用其擁有的 LocalDB 實例來開啟資料庫。 如果資料庫檔案位於受保護的位置,例如用戶數據資料夾、只有該使用者以及任何具有該資料夾存取權的系統管理員,才能開啟資料庫。
LocalDB檔案每次只能由LocalDB的一個實例開啟。
備註
LocalDB 一律會在使用者安全性內容下執行;也就是說, LocalDB 絕不會使用來自本機系統管理員群組的認證執行。 這表示所有 LocalDB 實例使用的資料庫檔案都必須使用擁有使用者的 Windows 帳戶來存取,無需考慮本機 Administrators 群組的成員資格。