我创建了一个名为<SystemName>\SQLEXPRESS
的服务器,甚至启用了TCP / IP协议以使其可在本地Intranet上搜索。但是问题是,人们可以连接到名称为<SystemName>
的服务器;不是<SystemName>\SQLEXPRESS
。在<SystemName>\SQLEXPRESS
上所做的任何更改都可以轻松复制到名称为<SystemName>
的服务器上。但是我想知道服务器名称(即系统名称)和systemname / sqlexpress之间有什么区别?
答案 0 :(得分:2)
仅提供服务器名称或系统名称时,将使用该系统上SQL Server的默认实例建立连接。
如果要连接到该系统上安装的特定命名实例,则必须同时指定两者:
SystemName/InstanceName
在所涉及的示例(“系统名称/ sqlexpress”)中,sqlexpress
是该系统上SQL实例的名称。
您可以在Microsoft上找到有关此内容的更多详细信息:
客户端应用程序连接到Microsoft SQL Server 2005实例以使用SQL Server数据库。每个SQL Server实例由一组具有独特设置的独特服务组成。目录结构,注册表结构和服务名称都反映了您在安装过程中标识的特定实例名称。
实例是默认的未命名实例,或者是命名实例。在默认实例中安装SQL Server 2005时,不需要客户端指定实例名称即可建立连接。客户端只需知道服务器名称即可。
命名实例由计算机的网络名称加上您在安装过程中指定的实例名称来标识。连接时,客户端必须同时指定服务器名称和实例名称。
默认情况下,除非您指定实例名称,否则SQL Server将安装在默认实例中。但是,除非在安装过程中强制执行默认安装,否则SQL Server Express始终会安装在命名实例中。
您可以在一个系统上安装多个SQL Server实例。 “命名”实例和“默认”实例之间没有什么区别,只是 Default 是默认实例,您无需为其显式指定名称。
正如@Brian在评论中指出的,可以考虑的一个区别是SQL Server Browser Service:
如果SQL Server Browser服务未运行,则只要提供正确的端口号或命名管道,您仍然可以连接到SQL Server。例如,如果它在端口1433上运行,则可以使用TCP / IP连接到SQL Server的默认实例。
但是,如果SQL Server Browser服务未运行,则以下连接将不起作用:
任何尝试在未完全指定所有参数(例如TCP / IP端口或命名管道)的情况下连接到命名实例的组件。
任何生成或传递服务器\实例信息的组件,以后其他组件可以使用这些信息来重新连接。
在不提供端口号或管道的情况下连接到命名实例。
DAC到命名实例,或者默认实例(如果不使用TCP / IP端口1433的话)。
OLAP重定向器服务。
枚举SQL Server Management Studio,企业管理器或查询分析器中的服务器。
实际上没有什么区别,但是.... SQL Server的默认端口是1433。通常,默认实例在此端口上运行;默认实例在此端口上运行。也可以将其配置为在其他端口上运行。即使更改了端口,默认实例仍保持为默认实例。然后,您需要明确指定端口。