我们如何为连接字符串.config中使用的Sql Server实例名设置别名?

时间:2010-06-29 11:57:49

标签: sql-server visual-studio-2010 sql-server-2008 entity-framework-4 connection-string

我有两个开发团队,来自不同的团队。

  • A组针对Sql Server 2008 R2的本地默认实例开发;
  • B组针对Sql Server 2008 R2的本地命名实例进行开发。

有没有办法设置别名,以便两个组都使用相同的名称进行编码?就目前而言,当B组更改(本地)到./DEV并且A组再次将其更改回来时,我们会发生连接字符串战争。

3 个答案:

答案 0 :(得分:8)

在SQL Server配置管理器中,在SQL Server本机客户端配置部分下有一个名为“别名”的子部分,您可以在此处添加指向命名实例的别名。您只需使用别名,就好像它是具有别名名称的服务器上的默认实例。我们使用这个确切的模型并且只有一个指向标准别名的连接字符串。每个开发人员都有相同的别名,指向他们自己的实例。

答案 1 :(得分:2)

就个人而言,我会让他们都使用同一个盒子。

也就是说,您可以使用SQL Server客户端工具设置local aliases per developer's box

任何基于IP地址或服务器名称(例如主机文件或DNS)都将失败,因为实例名称(和使用的端口)不同

答案 2 :(得分:0)

别名到本地SqlExpress实例

为了扩展Ben的答案,我有一个特定的要求,即对指向特定服务器实例的连接字符串进行别名,而是将其重新路由到我们的本地开发人员Sql Express实例,即别名来自:< / p>

SomeServer\SomeInstance

.\SQLExpress

在我找到link here之前,这有点棘手。我的Sql Express实例在标准端口1433上运行(即适应套件)

为SqlExpress启用TCP / IP

由于通过TCP / IP端口TCP/IP protocol must be enabled进行别名处理。 (如果您在本地工作,则无需打开SqlExpress进行远程访问)。

Sql Server -> Configuration Tools -> Sql Server Configuration Manager下使用

Enabling TCP/IP

同时,将Listen All属性设置为Yes

启用LocalHost IP&#39>

确保IPv4(127.0.0.1)和IPv6(::1)本地主机都处于活动状态并已启用。

在每个IP上,将动态端口保持为零(顾名思义,端口将动态分配)。然后全局使用IPAll动态和TCP端口。

Activating local host

您需要重新启动 MSSQLServer / SqlExpress服务才能实现更改。

创建别名(32位和64位)

Sql Native Client xx配置下,这需要简单地添加别名&#34; From&#34; Server\Instance Alias Name ,实际服务器+实例为 Server (即我的本地SqlExpress实例)。我能够通过端口1433或IpAll(9876)上的动态端口进行连接,尽管没有理由使用后者。必须为32位和64位客户端配置执行别名。

Adding Sql Alias

您现在应该能够通过SSMS使用别名SomeServer\SomeInstance进行连接。

其他笔记

  • 由于我是本地实例的别名,因此我不必为来自主机SomeServer的DNS或LocalHosts添加别名。但是,如果你是远程服务器的别名(加上我猜其他一些安全问题),可能需要这样做。
  • 我不需要运行Sql Browser服务。

因此,似乎Sql Client配置会在任何网络或安全步骤之前处理替换。