我在两个独立的盒子上安装了两个 SQL(我已“继承”了它们)。
A SQL 2005 Installation
,实例名为SQL2005
-我通过 SQL Studio Manager 连接到它,当我连接到 Servername 时,我输入:SERVERNAME\SQL2005
答:现在SQL 2008 Installation
,当我进入 Studio Manager 时,它直接连接到服务器,只需输入而无需SERVERNAME
指定\INSTANCE
。但是,查看 services.msc 似乎实例是MSSQLSERVER
。
这究竟是如何工作的?我一直以为你必须直接连接到一个实例。例如,在 2005 框上,我无法连接到,SERVERNAME
我必须指定一个实例,但在 2008 框上,我只能连接SERVERNAME
,如果我指定\MSSQLSERVER
为实例,则无法连接。
有任何想法吗?
答案1
您看到的是 SQL Server 2008 已作为“默认实例”安装。默认实例的名称为“MSSQLSERVER”,但无法使用该实例名称进行访问(这是设计使然,可能会有点令人困惑 - 我相信这是 2000 年之前的 SQL Server 版本不支持实例安装的产物)。
您的 SQL Server 2005 安装是作为名为“SQL2005”的“命名实例”完成的。如您所见,在连接到它时需要指定实例名称。
您可以从 Microsoft 获取更多背景信息:实例配置
答案2
MSSQLSERVER 是默认实例名称,因此您无需在这种情况下指定名称。它也有略微不同的处理方式:MSSQL Server 区分“命名实例”(如 SQL2005)和“默认实例”。您遇到连接问题可能是因为“MSSQLSERVER”不是命名实例,但您尝试将其作为命名实例进行连接。
答案3
默认实例和命名实例均有实例 ID。实例 ID 可在文件夹名称、注册表项名称和服务显示名称中找到。对于默认实例,实例 ID 始终为“MSSQLSERVER”;对于命名实例,实例 ID 是命名实例的名称。
因此默认实例可能在C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER
,而命名实例可能在C:\Program Files\Microsoft SQL Server\MSSQL.SQL2005
。