SQL Server 2005 只能看到命名实例 无法看到默认实例

在SQL Server 2005中,如果先安装命名实例,后安装默认实例,可能导致默认实例在Management Studio的网络服务中不可见。此问题由SQL Server的注册表信息排列错误引起。解决方法是手动修改注册表中InstalledInstances的值顺序,使其正确反映默认实例和命名实例的安装顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

==========

Enumerating sql server using SMO doesnot list default instance if it is installed after named instance:
SQL Server 2005服务器有两个实例,一个是默认实例ABC,一个是命名实例ABC/KDHR,在management studio的bowser more中,在local services中可以看到这两个实例,在network services中只能看到命名实例ABC/KDHR,无法看到默认实例ABC,但是通过实例名称可以成功连接SQL Server。

故障排查

==========

通过查看Management Studio的dump文件,发现问题出现在以下函数:

Enumerating with either SmoApplication.EnumAvailableSqlServers() or
SqlDataSourceEnumerator.Instance.GetDataSources() doesn't list the default
instance, if default instance is installed after the named instance.
(SmoApplication.EnumAvailableSqlServers() actully called
SqlDataSourceEnumerator.Instance.GetDataSources() )

经确认,这是SQL Server 2005的一个已知问题:SQL BU Defect Tracking 408441, SOX070206700032

出现这个问题的原因,是由于在安装SQL Server 2005时,先安装了命名实例ABC/KDHR,后安装了默认实例,这使得默认实例在注册表的信息排在了命名实例的后面,由于SQL Server 2005不能很好的识别这些注册表信息,以至于不能显示出默认实例。

解决办法

==========

1.打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server下面的InstalledInstances

2.发现InstalledInstances的值为KDHR MSSQLSERVER,改成MSSQLSERVER KDHR

3.重新使用SQL Server 2005 Management Sudio的“Network Services”查看是否能够看到默认实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值