适用于: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 实例的名称是 MSSQLLocalDB。
自动 LocalDB 实例提供无缝的实例管理。 用户不需要创建实例。 这使用户能够轻松地安装应用程序,并迁移到不同的计算机。 如果目标计算机已安装指定版本的 LocalDB,则该计算机也提供此版本的自动 LocalDB 实例。
自动实例管理
用户无需创建自动 LocalDB 实例。 只要用户的计算机上提供了指定的 LocalDB 版本,实例在首次使用实例时就延迟创建该实例。 从用户的角度来看,如果 LocalDB 二进制文件存在,则自动实例始终存在。
其他实例管理操作(如删除、共享和取消共享)也适应于自动实例。 具体而言,删除自动实例会有效地重置在下一个“开始”作上重新创建的实例。 如果系统数据库损坏,可能需要删除自动实例。
命名的 LocalDB 实例
命名的LocalDB实例是 私有的;实例由负责创建和管理该实例的单个应用程序拥有。 命名的 LocalDB 实例提供隔离并改进性能。
命名实例创建
用户必须通过 LocalDB 管理 API 显式创建命名实例,或通过 app.config 托管应用程序的文件隐式创建命名实例。 托管应用程序也可能使用 API。
每个命名实例都具有关联的 LocalDB 版本;也就是说,它指向指定的一组 LocalDB 二进制代码。 命名实例的版本是在实例创建过程中设置的。
命名实例命名规则
LocalDB 实例名称最多可包含 128 个字符( sysname 数据类型对此有限制)。 这一限制与传统 SQL Server 实例名有显著差异,后者仅限于 15 个 ASCII 字符的 NetBIOS 名称。 造成这种差异的原因在于 LocalDB 将数据库视为文件,因此暗示基于文件的语义,因此用户在选择实例名称时有更多自由。
LocalDB 实例名称可包含在文件名组分内合法的任何 Unicode 字符。 文件名组件中的非法字符通常包含以下字符:ASCII/Unicode 字符 1 到 31,引号()、小于()、大于("<>)、管道(|)、后空(\b)、制表\t符()、冒号(:)、星号(*)、问号?()、反斜杠(\)和正斜杠()。/ 允许 null 字符 (\0) ,因为它用于字符串终止;忽略第一个 null 字符之后的所有内容。
Note
非法字符列表可能取决于作系统,将来的版本中可能会更改。
实例名称中的前导空格和尾随空格将被忽略和剪裁。
为避免命名冲突,命名的 LocalDB 实例不能使用保留的自动实例名称 MSSQLLocalDB。 尝试创建一个带有该名称的命名实例实际上是创建一个默认实例。
相关任务
| Article | Description |
|---|---|
| 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 实例的函数。 |