为什么 SQL Server Express 的实例名称会发生​​变化?

man*_*acz 9 sql-server sql-server-express

我正在使用一个网络应用程序

SQL Server Express(Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 2016 年 10 月 28 日 18:17:30 版权所有 (c) Microsoft Corporation Express Edition(64 位),Windows 10 Pro 6.3(内部版本 18362) :))。

Web 应用程序正在使用连接字符串连接到数据库。在搜索了几天的正确连接字符串格式后,我设法找到了格式,使用 Nik 在这篇博客文章中描述的方法,它是:

Data Source = np:\\.\pipe\LOCALDB#A9DE3E14\tsql\query; Initial Catalog = MyDataBaseCatalog; User ID = myuser; Password=mypassword;
Run Code Online (Sandbox Code Playgroud)

昨天一切正常,但今天它停止了。我发现服务名称已更改为:

LOCALDB#B87CB983
Run Code Online (Sandbox Code Playgroud)

用连接字符串中的新服务名称替换实例名称后,Web 应用程序运行良好,但这不是可接受的解决方案。

你能告诉我为什么实例名称会改变吗,是否有任何 Express 版本限制?如何将名称配置为永久?

AMt*_*two 17

此应用未使用常规 SQL Server Express Edition。Express Edition 作为服务运行,因此您可以在“服务”控制面板(在 Windows 上)中看到它,并且会有一个稳定的实例名称,正如您所期望的。

您要连接的此服务使用(名称混淆)SQL Server Express LocalDB。这通常被称为“LocalDB”,以减少名称重叠的混淆。LocalDB 在进程中运行——也就是说,它不是服务,而是由使用 is 的应用程序启动。

LocalDB 支持多种配置,具体取决于应用程序的访问方式。查看文档中标题为“自动和命名实例”的部分以及标题为“ LocalDB 的共享实例”的部分。