代码之家  ›  专栏  ›  技术社区  ›  Saleh

如何在SQL Server 2008中将两个数据库合并为一个数据库?

  •  0
  • Saleh  · 技术社区  · 15 年前

    我有两台电脑,每台电脑上都安装了SQL Server 2008,还有一个数据库,里面有数据。

    我需要一种方法将数据库中的数据从这个SQL服务器移动到另一个(另一台拥有相同数据库的PC)

    • 将数据从一台PC移动到另一台PC-

    有一个问题,ID列,因为我的2台电脑中的每个数据库都有数据,所以这个列从1、2、3……开始计数。(数据将与我的数据库中的其他数据冲突)

    有什么方法可以解决我的问题并成功地移动数据吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   marc_s    15 年前

    这些是标识类型的ID列吗?如果是这样,则在从第二个数据库插入新数据时,将生成新的ID--无冲突。这意味着您可能需要跟踪插入,以便定义从db 2插入db 1时将其转换为什么样的旧id。

    如果这些列是 标识列,您只需确保向旧值添加足够大的数字,例如,将每个ID(例如5)替换为ID+100'000=100'005-->,这样就可以避免所有冲突。同样,如果在数据库2中有任何引用该主表的数据,那么在将它们插入到新数据库的表中之前,必须修复对新值的旧引用(旧的外键ID)。

    这有点凌乱-但如果你仔细考虑的话,肯定可以做到。基本上,您需要对导入的数据重新编号,并确保没有任何冲突。在SQL Server中,没有任何功能可以帮助您完成这一任务—不幸的是,没有“导入此数据并重新编号其ID”之类的命令。