【问题标题】:Use table data from different sql server in a .Net application在 .Net 应用程序中使用来自不同 sql server 的表数据
【发布时间】:2013-11-07 16:24:33
【问题描述】:

我需要运行存储过程,让我们使用来自不同 sql server 的表。其中一台服务器已禁用“链接服务器”或分布式事务功能;因此不能从存储过程中连接表。一台服务器表要更新,其他服务器数据是只读的。

因为我正在开发一个 ASP.Net Web 应用程序项目,所以我希望能利用它来解决这个问题。我能想到的最佳解决方案是从一台服务器读取表行作为 XML 并将其作为 XML 参数提供给其他服务器数据库中的存储过程,以便可以将其转换回表并使用。你有更好的想法吗?

谢谢。

【问题讨论】:

  • 为什么要使用 XML?只需从 sql server 实例 1 中读取数据,然后插入到 sql server 实例 2 中的表中。
  • @RichardDesLonde 如何将表传递给存储过程?
  • 你为什么打算重新创建表只是为了执行更新?
  • @Aamir 您没有将表传递给存储过程。您只需使用您的 .net 功能将记录插入到第二个数据库中的表中,然后您就可以在 SQL 中使用它做任何您想做的事情。
  • @RichardDesLonde ,根据您的建议,我想我已经在目标服务器数据库中创建了代理表。这些表将代表只读/远程服务器表。在将它们用作存储过程中的本地表之前,我将首先使用 SqlBulkCopy 对象来填充这些代理表。听起来是个不错的计划。不知道哪种解决方案会更昂贵,这个解决方案还是 xml 解决方案,但是这个解决方案听起来很直接。谢谢。

标签: .net sql-server linked-server


【解决方案1】:

我的错。我完全隔开您声明无法链接到远程的部分。在这种情况下,我认为 XML 选项是一个更好的选择。传递 XML 数据(在应用必要的过滤器以使记录尽可能小之后),然后将第二个数据库的存储过程中的信息解析为 XML

http://technet.microsoft.com/en-us/library/ms175160.aspx

【讨论】:

    猜你喜欢
    • 2013-11-28
    • 2015-11-17
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多