如何为命名的SQL Server实例创建别名


8

在我的开发人员计算机上,我有一个名为developer_2005的SQL Server实例。在我们正在创建的C#应用​​程序的资源设置文件中,实例名称设置为foob​​ar(不是真正的,但仅作为示例)。因此,当我运行应用程序(以调试或重新实现方式)时,它将尝试连接到名为foob​​ar的本地主机上的SQL Server 。

我想知道是否可以创建一个别名或类似的名称,以便应用程序实际上在名为foob​​ar的本地主机上找到一个SQL Server ,但实际上它正在连接到名为developer_2005的实例。

应用程序的配置文件中的连接字符串是Data Source = localhost \ foobar; Initial Catalog = barfoo; Integrated Security = True,提供程序名称为System.Data.SqlClient。如果我将localhost \ foobar更改为localhost \ developer_2005,则应用程序可以像应该的那样进行连接。如何创建别名,这样我就不必更改文件中的字符串?

我尝试在SQL Server Management Studio中创建带有注册服务器名称“ localhost \ developer”的服务器注册,但这似乎没有任何效果。甚至不确定这到底是做什么的...但是后来我发现了SQL Server配置管理器\ SQL Native Client COnfiguration \ Aliases。我以为这就是解决方案所在。但是我还不太清楚如何添加一个新的...创建一个新的时,我必须提供别名,端口号,协议和服务器,而且我真的不知道要输入什么的任何一方。

Answers:


6

别名:foobar(您要使用的名称)

服务器名称:计算机的实际名称或IP地址(不是localhost或127.0.0.1)

通讯协定:TCP / IP

端口:默认端口(1433)

确保启用了TCP / IP协议(默认情况下禁用)

更改连接字符串以使用新的别名(数据源= foobar)


服务器名称localhost是正确的。这是我需要为其创建别名的命名实例名称。
Svish

然后,您应该使用localhost \ instancename作为服务器名称。
马西莫

别名呢?我应该使用localhost \ developer_2005作为服务器名称,并使用localhost \ foobar作为别名吗?那行得通吗?
Svish

我检查得更好...看起来您实际上可以做到。至少在SQL Server 2008中(不知道它是否会在2005年运行)。
马西莫

我编辑了答案,尝试一下。
马西莫

1

没错,您需要做的是在Native Client配置中定义一个新别名。

  • 别名:您要创建的别名
  • 服务器名称:实际服务器名称
  • 通讯协定:TCP / IP
  • 端口:默认端口(1433)

尝试这个:

  • 别名:localhost \ foobar
  • 服务器名称:localhost \ developer_2005
  • 通讯协定:TCP / IP
  • 端口:1433

那就是我的所在。但是我要在那些领域里写些什么呢?我不太明白...
Svish

配置文件中的连接字符串是Data Source = localhost \ foobar; Initial Catalog = barfoo; Integrated Security = True,提供程序名称为System.Data.SqlClient。为了使其正确连接,我必须将localhost \ foobar更改为localhost \ developer_2005。如何创建别名,这样我就不必这样做了?
Svish

这是行不通的。连接字符串是寻找一个命名实例名为foob​​ar的,别名只能作为顶级的名字,而不是他们被命名实例本身。
马西莫

因此,除了更改应用程序中的连接字符串之外,没有其他方法可以解决此问题?
Svish

我检查得更好...看起来您实际上可以做到。至少在SQL Server 2008中(不知道它是否会在2005年运行)。
马西莫2009年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.