【问题标题】:SQL import only different recordsSQL 只导入不同的记录
【发布时间】:2011-12-09 11:58:38
【问题描述】:

很抱歉,如果之前已经回答过这个问题,但我无法在任何地方找到答案。我在服务器“A”上有一个 SQL 数据库,它上面有更新等,同时同一个数据库在服务器“B”上。

现在的问题是,一些网站比其他网站移动得更快,并且正在服务器“B”上进行更新等,而其他网站(可能需要 2 或 3 周的注册时间)在服务器“A”上进行更新。

问题是,我无法从服务器“A”的 .bak 文件导入到服务器“B”,因为我丢失了服务器 B 的所有数据。无论如何只从“A”导入不同于服务器“B”的数据?有意义吗?

提前谢谢你...

【问题讨论】:

  • 更具体一点。这是作为 SQL 服务器管理员,还是您介意在表上运行 SQL?如果是前者,您需要获取正确的 TLOG 位,否则您需要执行 en.wikipedia.org/wiki/Upsert
  • 我不会说我是管理员,但我是 SQL 2008 R2 并且我可以完全访问数据库和企业管理器等。

标签: sql-server tsql sql-server-2008-r2 import


【解决方案1】:

我建议看看 RedGate 的 SQL Data CompareSQL Compare。您可以创建一个一次性脚本,但这些工具在这种情况下确实派上用场。

听起来SQL Data Compare 是您现在需要的工具。它允许您比较两个数据库之间的数据(您可以选择单个表)并同步它们。在处理标识列和约束时非常有用。

SQL 数据比较:
http://www.red-gate.com/products/sql-development/sql-data-compare/

SQL 比较:
http://www.red-gate.com/products/sql-development/sql-compare/

【讨论】:

    【解决方案2】:

    另请参阅 TSQL 的 MERGE 命令。

    【讨论】:

      【解决方案3】:

      我过去曾使用 TableDiff.exe 来执行此操作。这里有一些关于使用它的好文章:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 2018-11-02
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        相关资源
        最近更新 更多