SQL Server Express 2008在连接字符串中使用(local)

7
可以使用如下格式连接到一个名为(local)的SQL Server Express 2008 数据库:"server=(local);integrated security=SSPI;database=DBNAME"。您需要注意,如果您和另外一位开发者共同开发项目,他使用的是SQL Server 2008,而(local)可以正常工作,但是在本地使用SQL Server 2008 Express时,可能无法正常工作。请注意,数据库位于与.NET代码相同的计算机上。感谢您的提问。

你确定你的 SQL Server Express 安装不是一个命名实例吗? - PatrickJ
不,我不确定。我该如何检查? - Jeff Treuting
SQL Server Express的安装始终都有名称。 - Dean Harding
实例名称是 MSSQLSERVER(默认)还是 SQLEXPRESS(命名的)?您可以在 SQL Server 配置管理器中进行检查。 - John Rasch
1
我不确定这是正确的,Codeka - 我认为Express默认是有名称的,但在安装过程中你可以选择使用一个无名称的实例。 - PatrickJ
显示剩余3条评论
2个回答

4

假设您们两个都安装了默认实例名称为"SQLEXPRESS"的SQL Express,您可以使用以下1个连接字符串:

server=.\SQLEXPRESS;integrated security=SSPI;database=DBNAME

连接字符串中的"."用于表示本地计算机。

我本想把这个作为我的答案发出来,但看起来 Wallace 已经先到了。 - War

1

您可以使用SQL Server Configuration Manager工具创建别名。在您的计算机上给别名相同的名称,然后您只需在配置文件中引用该别名。

我不知道配置管理器工具是否实际包含在SQL Server Express版本中,但如果没有,那么您可以使用注册表键(它仍适用于Express版本)。请让您的同事设置别名,然后导出以下注册表键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

然后您可以在本地计算机上导入该键。如果您使用的是64位Windows,则情况会稍微复杂一些(因为您必须在64位和32位注册表中都设置别名)。


我使用的是64位机器。在SQL Server配置管理器中,我在32位和64位SQL Native Client 10.0配置部分下设置了一个别名。然后,在连接字符串中使用该别名作为服务器名称时,我遇到了以下错误:“在建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问。请验证实例名称是否正确,并确认SQL Server已配置为允许远程连接。(提供程序:SQL Network Interfaces,错误:26 - 找不到服务器/指定的实例)” - Jeff Treuting
我认为导致问题的另一个信息是,我在同一台机器上安装了完整版的2005。当我去SSMS并连接到(local)时,它会带我到2005实例。我还看到,当我进入我的2005实例的SQL Server配置管理器时,它也列出了别名。我想卸载2005可能只是解决我的问题。 - Jeff Treuting
关于设置别名的另一个提示...如果是本地主机,您可以使用“命名管道”作为协议。这对我有用,而即使启用了协议,我也无法让TCP协议工作。 - Dan Tanner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接