gpt4 book ai didi

.net - 默认实例的连接字符串,例如命名实例

转载 作者:行者123 更新时间:2023-12-02 22:32:22 25 4
gpt4 key购买 nike

在我的 .NET 应用程序中,我正在连接到 Microsoft SQL Server 2005 或 2008 数据库。用户选择应用程序显示的实例,然后应用程序应该对该实例执行某些操作。我从注册表 HKLM\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL 中获取实例名称。

我不知道用户是否选择默认实例或命名实例(实例名称注册表值中没有此类信息)。但是,为了连接到任意实例,我应该使用

Server=(local)

Server=MSSQLSERVER\instance_name

在我的 ADO.NET 连接字符串中。我可以只使用一个连接字符串模板吗?我尝试对默认 SQL Server 2008 实例使用 Server=MSSQLSERVER\MSSQL10.MSSQLSERVER,但连接失败。

最佳答案

如果实例名称是 MSSQLSERVER,则必须使用类似 Server=servername 的模板。对于所有其他实例名称,请使用类似 Server=servername\instancename 的模板。您无法显式指定默认实例名称。

顺便说一句,您不应该为此高峰注册表。首先,它是无证的,并且可能会发生任意和未经通知的更改。其次,这是不正确的,因为注册表中存在的实例可能没有运行。第三个也是不正确的,因为如果 SQL Browser 服务不通告它们,即使正在运行的实例也可能无法连接。

建议和支持的检测现有实例的方法是使用 SQL 浏览器广播功能,并且可以通过使用 SmoApplication.EnumAvailableSqlServers 从客户端代码中利用它们。 .

关于.net - 默认实例的连接字符串,例如命名实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3449397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com