localhost 和 (LocalDb)/MSSQLLocalDB 之间的 SQL 区别

问题描述 投票:0回答:2

我注意到我使用了连接字符串来迁移身份数据库。无论我做什么,我都找了又找,但我找不到数据库。所以我重新评估了我的连接字符串,发现它们并不那么相似:

var connectionString = @"Server=localhost;Database=MyDatabase;Trusted_Connection=True;"
var connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;database=gritzy.IdentityServer4.dbo;trusted_connection=yes;";

一个只是将服务器指定为 localhost,另一个甚至根本没有指定服务器。

我的印象是 localhost 只会使用默认的 MSSQLSERVER 实例名称。

数据源和服务器有什么区别?

sql-server connection-string localdb
2个回答
7
投票

如果你同时安装了 SQLExpress(SqlLocalDB) 和 SqlServer,你就会陷入很大的困惑。

您可能见过这样的连接字符串:

SQL服务器:

var connectionString = @"Server=localhost;Database=MyDatabase;Trusted_Connection=True;"

SqlExpress:

var connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;database=gritzy.IdentityServer4.dbo;trusted_connection=yes;";

第一个是你用来连接SQLServer的连接字符串,它要求你在安装SqlServer时指定根文件夹。默认值为

C:\Program Files\Microsoft SqlServer
,但您可以将其放在任何您想要的位置。例如,如果我指定根为
C:\Source\DB
那么它就是
C:\source\DB\MSSQL15.MSSQLLOCALDB\MSSQL\DATA
。这里的要点是 SQLServer 实例是机器范围的。每台服务器/机器一个实例。

第二个是SQLExpress的连接字符串,DB文件通常存储在每个用户的AppData文件夹中,如

C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB
。请注意,登录到同一台计算机的每个用户都可以拥有自己的数据文件,因为每个用户都有自己的 appData 文件夹。

如果您同时安装了 SQLExpress/SqlLocalDB 和 SqlServer,请启动 SSMS(管理工作室),您可以同时连接到两者,您会注意到它们有不同的数据库。


6
投票

“数据源”和“服务器”是同义词,所以没有区别。

localhost 指定您计算机上的默认 SQL Server 实例。

(LocalDb)\MSSQLLocalDB
是您计算机上的默认 LocalDB 实例

© www.soinside.com 2019 - 2024. All rights reserved.