链接服务器的 ASP.NET 连接字符串格式是什么?

What's the ASP.NET Connection String Format for a Linked Server?

提问人:J Wynia 提问时间:8/20/2008 更新时间:6/29/2009 访问量:6982

问:

我有一个数据库服务器,我无法使用提供的凭据连接到该服务器。但是,在同一服务器的暂存版本上,有一个指向生产数据库的链接服务器。暂存服务器和链接服务器具有相同的架构。

我已经放心了,我应该期望能够在我们上线之前连接到实时服务器。不幸的是,在我的开发过程中,我需要的不仅仅是当前临时数据库中的令牌示例记录。所以,我希望连接到链接服务器。

到目前为止,在我针对此架构的开发中,一直针对暂存服务器本身,使用Subsonic对象。一切正常。

我可以通过 SQL Server Management Studio 连接到该链接服务器并直接执行查询。我还可以在 C# 中对链接服务器执行“手动”查询,方法是将连接字符串挂接到暂存服务器并运行我的查询

SELECT * FROM OpenQuery([链接服务器],'查询')

但是,Subsonic 对象使我能够在预算范围内按时完成这个项目,因此我不想在我的代码中直接进行查询。

我正在寻找的是是否有一种方法可以将连接字符串声明给链接服务器。我查看了很多关于该主题的论坛条目等,大多数答案似乎完全掩盖了问题的“链接服务器”部分,重点是基本的连接字符串语法。

asp.net sql-server

评论


答:

0赞 SQLMenace 8/21/2008 #1

从 .NET 创建链接服务器没有任何意义,因为链接服务器只不过是从一个 SQLServer 到另一个服务器(SQL、文件、Excel、Sybase 等)的连接,本质上它只是一个连接字符串(您可以在创建链接服务器时模拟和执行一些其他操作)。

2赞 JasonS 8/21/2008 #2

我不相信您可以在没有 OpenQuery 语法的情况下直接从应用程序访问链接服务器。根据架构的复杂性,编写例程或 sproc 以使用实时数据库中的数据填充临时数据库可能是有意义的。

您还可以考虑查看 Redgates SQL 数据生成器或任何其他数据生成工具。Redgates 非常易于使用。

另一个想法 - 您能否获得可以在开发中安装的实时数据库的备份以进行测试?如果您只寻求用于开发和测试的数据,您可能根本不希望连接到生产数据库。

2赞 TheEmirOfGroofunkistan 8/21/2008 #3

在服务器 B 上创建测试存储过程,这些存储过程通过链接服务器引用服务器 A 上的数据。例如,如果你的常规 sproc 引用了服务器 B 上的表,请说:

databaseA.dbo.tableName

然后使用链接的服务器名称引用服务器 A 上的同一数据库/表:

linkedServerName.databaseA.dbo.tableName

如果服务器 A 的数据库/表/列名称相同,则可以通过一些快速查找/替换工作来做到这一点。

0赞 Meganathan 6/29/2009 #4

一种方法是创建两个连接字符串,并在需要时访问相应的数据库。 第二种选择是仅为数据库 A 创建连接,并在 Database.good 文章中为 Databse B 创建链接服务器,我真的很喜欢它。我正在做一些关于 Asp.net 连接的研究,我发现宏观测试 www.macrotesting.com 也是非常好的来源。谢谢你的文章.....

问候。。。 梅加纳森.J