为本地SQL实例查找正确的连接字符串

时间:2011-05-04 15:41:05

标签: sql-server sql-server-express

我正在尝试为将连接到不同计算机上的本地SQL Server实例的测试环境构建连接字符串。这样做的目的是让开发人员可以从TFS签出代码,构建它并运行测试用例,连接到他的本地数据库。问题是不同开发人员的计算机可能具有不同的SQL Server设置。特别是,有些可能正在运行整个服务器,其他可能正在运行SQL Server Express。

我正在尝试修改一个实用程序例程,该例程将采用模板连接字符串(例如Data Source=(local); Initial Catalog= myDB; Integrated Security=SSPI;)并修改数据源以与本地服务器一起使用。

我尝试过使用SmoApplication.EnumAvailableServers()(无论是否使用true或false参数,都返回一个空表)和SqlDataSourceEnumerator.GetDataSources()(从网络返回2888台服务器,但本地机器上没有) ),SQLCMD -L(不返回任何内容)。

有什么建议吗?

在替代方案中,是否有一种简单的方法来判断特定连接字符串是否将连接到服务器(如果没有,则不等待它超时)。如果我能找到答案,我可以尝试可能的嫌疑人,直到我找到工作。

4 个答案:

答案 0 :(得分:2)

您可能会尝试获取以下连接字符串:

  1. 创建一个新的空白文件并将其命名为test.udl。

  2. 双击它,将出现“数据链接属性”对话框。

  3. 在“提供程序”选项卡上,选择“Microsoft OLE DB Provider for SQL Server”或“SQL Native Client”

  4. 在“连接”选项卡上,尝试各种设置并使用“测试连接”按钮进行测试。工作时单击“确定”。

  5. 在记事本中打开test.udl文件,将以“Provider =”开头的行复制到Web.config“ConnectionString”值中,但删除“Provider = SQLNCLI.1;”中的小部分。

答案 1 :(得分:1)

如果您希望每个开发人员使用他们自己的本地SQL服务器,那么ADO连接字符串应该将数据源设置为localhost

... ; Data Source=localhost; ...

此外,要获取当前服务器列表,请转到命令行并运行

osql -L

答案 2 :(得分:0)

这样可以解决问题:

Data Source=.\SQLEXPRESS

答案 3 :(得分:0)

您可以在注册表中查找所有本地SQL Server实例。此密钥包含列表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL

每个命名实例在此键中都有一个值。对于命名实例,值的名称与实例的名称相同。对于默认实例,该值将命名为MSSQLSERVER