SQL Server Express LocalDB 參考 - 實例 API

適用於:SQL Server

在傳統的服務型 SQL Server 世界中,安裝在單一電腦上的個別 SQL Server 實例會實際分隔;也就是說,每個實例都必須個別安裝及移除、有一組個別的二進位檔,並在個別的服務進程中執行。 SQL Server 實例名稱是用來指定使用者想要連線的 SQL Server 實例。

SQL Server Express LocalDB 實例 API 會使用簡化的「淺色」實例模型。 雖然個別 LocalDB 實例會分隔在磁片和登錄中,但它們會使用相同的共用 LocalDB 二進位檔集。 此外,LocalDB 不會使用服務;LocalDB 實例會視需要透過 LocalDB 實例 API 呼叫啟動。 在 LocalDB 中,實例名稱是用來指定使用者想要使用的 LocalDB 實例之哪一個。

LocalDB 實例一律由單一使用者擁有,而且只能從此使用者的內容看見和存取,除非已啟用實例共用。

雖然技術上 LocalDB 實例與傳統 SQL Server 實例不同,但其預期用途類似。 這些實例稱為 實例 ,強調這種相似性,並讓 SQL Server 使用者更直覺。

LocalDB 支援兩種實例:自動實例 (AI) 和具名實例 (NI)。 LocalDB 實例的識別碼是實例名稱。

自動 LocalDB 實例

自動 LocalDB 實例為「公用」;系統會為使用者自動建立及管理它們,而且可供任何應用程式使用。 使用者電腦上安裝的每個 LocalDB 版本都有一個自動 LocalDB 實例。

自動 LocalDB 實例提供順暢的實例管理。 使用者不需要建立 實例。 這可讓使用者輕鬆地安裝應用程式,並移轉至不同的電腦。 如果目的電腦已安裝指定的 LocalDB 版本,該版本的自動 LocalDB 實例也會在該電腦上提供。

自動實例管理

使用者不需要建立自動 LocalDB 實例。 實例會在第一次使用 實例時延遲建立,前提是使用者的電腦上有指定的 LocalDB 版本可用。 從使用者的觀點來看,如果 LocalDB 二進位檔存在,則自動實例一律存在。

其他實例管理作業,例如 Delete、Share 和 Unshare,也適用于自動實例。 特別是,刪除自動實例會有效地重設實例,這會在下一個開始作業上重新建立。 如果系統資料庫損毀,可能需要刪除自動實例。

自動實例命名規則

自動 LocalDB 實例具有屬於保留命名空間之實例名稱的特殊模式。 這是防止名稱與具名 LocalDB 實例發生衝突的必要條件。

自動實例名稱是 LocalDB 基準發行版本本號碼,前面加上單一 「v」 字元。 這看起來像 「v」 加上兩個數字,其之間有句點;例如,v11.0 或 V12.00。

非法自動實例名稱的範例如下:

  • 11.0 (開頭遺漏 「v」 字元)

  • v11 (遺漏句號和第二個版本號碼)

  • v11。 (缺少第二個版本號碼)

  • v11.0.1.2 (版本號碼有兩個以上的部分)

具名 LocalDB 實例

具名 LocalDB 實例為「私人」;實例是由負責建立和管理實例的單一應用程式所擁有。 具名 LocalDB 實例提供隔離並改善效能。

具名實例建立

使用者必須透過 LocalDB 管理 API 明確建立具名實例,或透過受控應用程式的 app.config 檔案隱含建立具名實例。 受控應用程式也可以使用 API。

每個具名實例都有相關聯的 LocalDB 版本;也就是說,它會指向一組指定的 LocalDB 二進位檔。 具名實例的版本會在實例建立程式期間設定。

具名實例命名規則

LocalDB 實例名稱最多可以有 128 個字元(限制是由 sysname 資料類型強加)。 與傳統 SQL Server 實例名稱相比,這是一個顯著差異,其限制為 16 個 ASCII 字元的 NetBIOS 名稱。 此差異的原因是 LocalDB 會將資料庫視為檔案,因此表示以檔案為基礎的語意,因此使用者選擇實例名稱具有更多自由度是直覺的。

LocalDB 實例名稱可以包含檔案名元件內合法的任何 Unicode 字元。 檔案名元件中的非法字元通常包含下列字元:ASCII/Unicode 字元 1 到 31,以及引號 ()、小於 <> ()、大於 ()、管道 (|)、後空白字元 (\b)、定位字元 (\t)、冒號 (:)、星號 !、問號 (?)、反斜線 (\) 和正斜線 (/)。 請注意,允許 Null 字元 (\0) ,因為它用於字串終止;將會忽略第一個 Null 字元之後的所有專案。

注意

非法字元清單可能取決於作業系統,而且未來版本可能會變更。

實例名稱中的前置和尾端空白字元會被忽略,並將加以修剪。

為了避免命名衝突,具名 LocalDB 實例不能有遵循自動實例命名模式的名稱,如「自動實例命名規則」稍早所述。嘗試以遵循自動實例命名模式的名稱建立具名實例,實際上會建立預設實例。

SQL Server Express LocalDB 參考主題

SQL Server Express LocalDB 標頭和版本資訊
提供標頭檔資訊和登錄機碼,以尋找 LocalDB 實例 API。

命令列管理工具:SqlLocalDB.exe
描述 SqlLocalDB.exe,這是從命令列管理 LocalDB 實例的工具。

LocalDBCreateInstance 函式
描述用來建立新 LocalDB 實例的函式。

LocalDBDeleteInstance 函式
描述移除 LocalDB 實例的函式。

LocalDBFormatMessage 函式
描述傳回 LocalDB 錯誤的當地語系化描述的函式。

LocalDBGetInstanceInfo 函式
描述要取得 LocalDB 實例資訊的函式,例如是否存在、版本資訊、是否正在執行等等。

LocalDBGetInstances 函式
描述要傳回具有指定版本之所有 LocalDB 實例的函式。

LocalDBGetVersionInfo 函式
描述傳回指定 LocalDB 版本資訊的函式。

LocalDBGetVersions 函式
描述傳回電腦上所有可用的 LocalDB 版本的函式。

LocalDBShareInstance 函式
描述要共用指定 LocalDB 實例的函式。

LocalDBStartInstance 函式
描述啟動指定 LocalDB 實例的函式。

LocalDBStartTracing 函式
描述為使用者啟用 API 追蹤的函式。

LocalDBStopInstance 函式
描述停止指定 LocalDB 實例執行的函式。

LocalDBStopTracing 函式
描述停用使用者 API 追蹤的函式。

LocalDBUnshareInstance 函式
描述停止共用指定 LocalDB 實例的函式。