145

我需要将 SQL Server 2005 的命名实例转换为默认实例。

有没有办法在不重新安装的情况下做到这一点?


问题是,6 个开发人员中有 2 个安装了命名实例。因此,对于我们其他四个人来说,改变连接字符串变得很痛苦。我正在寻找阻力最小的途径,以使这 2 个重新回到我们团队的标准设置中。

每个人都表示这会很麻烦,而且会占用他们的开发时间。我认为这需要一些时间来解决,为了所有相关人员的最大利益,我尝试梳理已安装的配置应用程序但没有看到任何东西,所以我认为会有更多了解内部工作原理的人在这里。

4

7 回答 7

422

我还想将命名实例转换为默认实例 - 我的原因是仅使用来自各种应用程序的机器名称来访问它。

如果您想从任何连接字符串访问命名实例而不使用实例名称,并且只使用服务器名称和/或 IP 地址,那么您可以执行以下操作:

  • 打开SQL Server Configuration Manager
  • 点击SQL Server Network Configuration
  • 单击Protocols for INSTANCENAME您要使其可用(即 SQLExpress)
  • 右键单击TCP/IP并单击Enabled
  • 右键单击TCP/IP并转到Properties
    • 转到IP Addresses选项卡
    • 向下滚动到该IPAll部分
    • 清除字段TCP Dynamic Ports(即空/空白
    • 设置TCP Port1433
    • 点击Ok
  • SQL Server Services
  • 右键单击您的SQL Server (INSTANCENAME)并单击Restart

SQL Server 配置管理器

这将使命名实例在默认端口上侦听。注意:您只能像这样配置一个实例 - 除非实例是故障转移集群,否则两个实例不能在 IP All 部分具有相同的端口。

于 2012-08-12T11:44:29.280 回答
21

据我所知,没有。原因之一是硬盘上的文件夹结构;它们的名称类似于 MSSQL10.[instancename]

于 2008-08-29T18:59:18.953 回答
14

这就是为什么许多公司将其应用程序的连接字符串存储在机器级别而不是应用程序级别的原因。

只需将连接字符串完全从源代码中取出即可。然后让每个人都将他们的连接字符串放在他们的machine.config 中。

这具有避免不必要的特定于应用程序的环境逻辑的额外好处,即当您将应用程序复制到登台服务器时,登台服务器已经“知道”要使用的数据库。

于 2008-09-01T16:36:14.280 回答
2

更改实例名称的唯一方法是重新安装 - 卸载并安装为默认实例。

于 2008-08-29T19:59:57.403 回答
2

很多时候,我会使用客户端别名将应用程序指向不同的 sql 服务器,而不是它的连接字符串所针对的,尤其是。在处理 DTS 或具有硬编码连接字符串的应用程序时很方便。让每个人都使用一个通用别名,在连接字符串中使用别名,并将每个开发盒上的别名指向不同的实例。这样您就不必担心服务器是否是默认实例。

于 2008-08-30T03:17:53.950 回答
0

你不应该真的需要这样做。大多数声称需要默认实例的软件(如 Great Plains 或 Dynamics)实际上并不需要。

如果您根据您的情况重新发布(安装了 X,然后是 Y,但需要完成 Z),我敢打赌您会得到一些好的解决方法。

于 2008-08-30T00:26:18.090 回答
0

我认为您可以在不安装默认实例的情况下从 Sql Server 迁移数据。您可以只在 Oracle Sql Developer 中指定 Sql Server 实例的端口号,并且可以只使用服务器名称进行连接,而不是使用服务器名称和实例。像这样:连接到“MYSERVER,1433”

于 2013-04-30T08:43:12.393 回答