Applies to: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 实例不同,但其预期用途类似。 They are called instances to emphasize this similarity and to make them more intuitive to SQL Server users.
LocalDB 支持两种类型的实例:自动实例 (AI) 和命名实例 (NI)。 LocalDB 实例的标识符为实例名称。
自动 LocalDB 实例
Automatic LocalDB instances are public; they are created and managed automatically for the user and can be used by any application. 用户计算机上安装的每个 LocalDB 版本都存在一个自动 LocalDB 实例。
自动 LocalDB 实例提供无缝的实例管理。 用户不需要创建实例。 这使用户能够轻松地安装应用程序,并迁移到不同的计算机。 如果目标计算机已安装指定版本的 LocalDB,则该计算机也提供此版本的自动 LocalDB 实例。
自动实例管理
用户无需创建自动 LocalDB 实例。 只要用户的计算机上提供了指定的 LocalDB 版本,实例在首次使用实例时就延迟创建该实例。 从用户的角度来看,如果 LocalDB 二进制文件存在,则自动实例始终存在。
其他实例管理操作(如删除、共享和取消共享)也适应于自动实例。 具体而言,删除自动实例会有效地重置在下一个“开始”作上重新创建的实例。 如果系统数据库损坏,可能需要删除自动实例。
自动实例命名规则
自动 LocalDB 实例具有属于保留命名空间的特殊实例名称模式。 这对于防止名称与命名 LocalDB 实例发生冲突至关重要。
自动实例名称是 LocalDB 基线版本版本号,前面有一 v
个字符。 这看起来 v
是加两个数字,两者之间有句点;例如, v11.0
或 V12.00
。
非法自动实例名称的示例如下:
-
11.0
(开头缺少v
字符) -
v11
(缺少句点和版本的第二个数字) -
v11.
(缺少版本的第二个数字) -
v11.0.1.2
(版本号有两个以上的部分)
命名的 LocalDB 实例
Named LocalDB instances are private; an instance is owned by a single application that is responsible for creating and managing the instance. 命名的 LocalDB 实例提供隔离并改进性能。
命名实例创建
用户必须通过 LocalDB 管理 API 显式创建命名实例,或通过 app.config
托管应用程序的文件隐式创建命名实例。 托管应用程序也可能使用 API。
每个命名实例都具有关联的 LocalDB 版本;也就是说,它指向指定的一组 LocalDB 二进制代码。 命名实例的版本是在实例创建过程中设置的。
命名实例命名规则
A LocalDB instance name can have up to a total of 128 characters (the limit is imposed by the sysname data type). 这与传统 SQL Server 实例名称相比有显著差异,后者限制为 16 个 ASCII 字符的 NetBIOS 名称。 这种差异的原因是 LocalDB 将数据库视为文件,因此意味着基于文件的语义,因此用户可以直观地选择实例名称。
LocalDB 实例名称可包含在文件名组分内合法的任何 Unicode 字符。 文件名组件中的非法字符通常包含以下字符:ASCII/Unicode 字符 1 到 31,引号()、小于()、大于("
<
>
)、管道(|
)、后空(\b
)、制表\t
符()、冒号(:
)、星号(*
)、问号?
()、反斜杠(\
)和正斜杠()。/
允许 null 字符 (\0
) ,因为它用于字符串终止;忽略第一个 null 字符之后的所有内容。
Note
非法字符列表可能取决于作系统,将来的版本中可能会更改。
实例名称中的前导空格和尾随空格将被忽略和剪裁。
为了避免命名冲突,命名的 LocalDB 实例不能具有遵循自动实例命名模式的名称,如前面“ 自动实例命名规则 ”部分所述。 尝试创建名称遵循自动实例命名模式的命名实例实际上会创建默认实例。
Related tasks
Article | Description |
---|---|
SQL Server Express LocalDB 标头和版本信息 | 提供用于查找 LocalDB 实例 API 的头文件信息和注册表项。 |
命令行管理工具:SqlLocalDB.exe | 介绍 SqlLocalDB.exe,这是一个从命令行管理 LocalDB 实例的工具。 |
LocalDBCreateInstance Function | 描述创建新的 LocalDB 实例的函数。 |
LocalDBDeleteInstance Function | 描述删除 LocalDB 实例的函数。 |
LocalDBFormatMessage Function | 描述返回 LocalDB 错误的本地化说明的函数。 |
LocalDBGetInstanceInfo Function | 描述用于获取 LocalDB 实例的信息的函数,例如是否存在、版本信息、是否正在运行等。 |
LocalDBGetInstances Function | 描述返回具有指定版本的所有 LocalDB 实例的函数。 |
LocalDBGetVersionInfo Function | 描述返回指定的 LocalDB 版本的信息的函数。 |
LocalDBGetVersions Function | 描述返回计算机上可用的所有 LocalDB 版本的函数。 |
LocalDBShareInstance Function | 描述共享指定的 LocalDB 实例的函数。 |
LocalDBStartInstance Function | 描述启动指定的 LocalDB 实例的函数。 |
LocalDBStartTracing Function | 描述为用户启用 API 跟踪的函数。 |
LocalDBStopInstance Function | 描述停止指定的 LocalDB 实例运行的函数。 |
LocalDBStopTracing Function | 描述为用户禁用 API 跟踪的函数。 |
LocalDBUnshareInstance Function | 描述停止共享指定的 LocalDB 实例的函数。 |