我注意到我使用连接字符串来迁移身份数据库。无论我做了什么,我看了看,但我找不到数据库。所以我重新评估了我的连接字符串并发现它们不是那么相似:
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实例名称。
数据源与服务器有什么区别?
答案 0 :(得分:2)
“数据源”和“服务器”是同义词,所以没有区别。
localhost指定计算机上的默认SQL Server实例。
(LocalDb)\ MSSQLLocalDB是计算机上的默认LocalDB实例
答案 1 :(得分:1)
如果同时安装了SQLExpress(SqlLocalDB)和SqlServer,则会造成很大的混乱。
您可能已经看到过这样的连接字符串:
sqlserver:
var connectionString = @“ Server = localhost; Database = MyDatabase; Trusted_Connection = True;”
sqlExpress:
var connectionString = @“数据源=(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的连接字符串,并且数据库文件通常存储在每个用户的AppData文件夹中,例如“ C:\ Users \\ AppData \ Local \ Microsoft \ Microsoft SQL Server Local DB \ Instances \ MSSQLLocalDB”。请注意,每个登录到同一台计算机的用户都可以拥有自己的数据文件,因为每个用户都有自己的appData文件夹。
如果同时安装了SQLExpress / SqlLocalDB和SqlServer,请打开SSMS(管理工作室),您可以同时连接到这两个数据库,并且您会注意到它们具有不同的数据库。