【问题标题】:The Best Way For Transfer Data From One DataBase (sql server 2008) To Another db(sql server 2008) With Different Schema将数据从一个数据库(sql server 2008)传输到另一个具有不同架构的数据库(sql server 2008)的最佳方法
【发布时间】:2011-04-27 17:19:25
【问题描述】:

使用不同架构将数据从一个数据库 (sql server 2008) 传输到另一个数据库 (sql server 2008) 的最佳方法是什么?

有这样的程序吗?

感谢 4 你未来的回答

最好的问候

【问题讨论】:

    标签: c# asp.net sql-server-2008 synchronization data-transfer


    【解决方案1】:

    将源服务器链接到目标服务器。 然后,您可以从目标服务器执行您自己的查询,例如

    INSERT INTO Destination_Table (col1, col2, col3)
        SELECT colA, colB, colC
        FROM [SRC_MACHINE\SRC_SERVER].Source_Database.dbo.Source_Table
    

    如果您对编写查询感到满意,您可以将所有数据转换(如果需要)包含在嵌套的 SELECT 中,并使用 JOIN 和其他东西来使所选数据结构适合目标架构。

    即使两台服务器都运行 SQL Server Express(未随 SSIS 提供)也可行。 Documentation on Linking Servers

    【讨论】:

      【解决方案2】:

      我会使用 SSIS(附带 sql server)来执行此操作。然而,这将不是一件容易或快速的任务。从一种模式映射到另一种模式可能非常耗时,而且您几乎肯定会发现从一种模式到另一种模式不适合您必须处理的数据。例如,如果该字段在第一个模式中是 varchar,而在第二个模式中是 datetime,那么您几乎肯定必须排除错误值(例如“ASAP”),这可能是一个问题,尤其是当该字段是必填字段时。事实上,您还必须处理这些类型的错误——如果它不是必需的,而现在是,那么对于当前为 null 的记录,您在其中放置了什么值。当字段大小不匹配时,你会怎么做,你可能不得不截断数据。如果您有不同的查找值,则需要一个转换表。您可能需要一个转换表来关联新旧 id 字段,以便您可以正确加载子表。这是一项非常复杂的任务。

      【讨论】:

      • thanks 4 your answer // 假设主数据库和目标数据库的数据类型相同。但是 4 示例名称字段在主数据库的表中,另一个名称字段在另一个表中在目标db。在这种情况下,哪个程序可以帮助我4同步?
      • SSIS 仍然是最好的工具。
      【解决方案3】:

      根据您的需求有多复杂,您可能需要考虑使用SSIS

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多