【问题标题】:What's the ASP.NET Connection String Format for a Linked Server?链接服务器的 ASP.NET 连接字符串格式是什么?
【发布时间】:2010-09-06 07:11:00
【问题描述】:

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

我确信在我们上线之前我应该​​能够连接到实时服务器。不幸的是,在我的开发过程中,我需要的不仅仅是暂存数据库中当前的令牌样本记录。所以,我希望连接到链接服务器。

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

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

SELECT * FROM OpenQuery([LINKEDSERVER],'QUERY')

但是,Subsonic 对象使我能够按时并在预算内完成这个项目,所以我不希望在我的代码中直接查询。

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

【问题讨论】:

    标签: asp.net sql-server


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      databaseA.dbo.tableName
      

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

      linkedServerName.databaseA.dbo.tableName
      

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

      【讨论】:

        【解决方案3】:

        从 .NET 创建链接服务器没有任何意义,因为链接服务器只不过是从一个 sqlserver 到另一台服务器(sql、文件、excel、sybase 等)的连接,本质上它只是一个连接字符串(您可以在创建链接服务器时模拟并做一些其他事情)。

        【讨论】:

          【解决方案4】:

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

          问候... 梅加纳森.J

          【讨论】:

            猜你喜欢
            • 2010-10-20
            • 2011-04-04
            • 1970-01-01
            • 1970-01-01
            • 2013-07-09
            • 1970-01-01
            • 2010-09-21
            • 2022-11-19
            相关资源
            最近更新 更多