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

将数据库数据从多个数据库复制到一个数据库。数据复制(排序)

  •  3
  • adudley  · 技术社区  · 15 年前

    这涉及到数据复制,包括:

    我们有许多安装了SQL Express的站点,每个站点上都有一个“审计”数据库,其中有一个第一标准格式的表(为了简化操作:)

    现在,我需要从每个站点获取此表,并复制内容(例如,使用日期时间值>1/1/200 00:00,但这会发生明显的变化)并将其复制到sql server中的一个大“超级表”,该表还具有主键作为站点名称(需要插入)和sql Express表中的当前主键)

    e、 g.许多SQL Express数据库具有以下表列

    身份证件

    大的超级桌子需要有:

    、定义名称、定义类型、日期时间、成功、NvarChar1、NvarChar2等

    其中,粗体项目为主键

    非常感谢。

    3 回复  |  直到 15 年前
        1
  •  1
  •   HLGEM    15 年前

    您可以使用SSI(SQL Server附带)进行填充,可以使用变量对其进行设置,以更改到各种数据库的连接字符串。我有一个循环遍历整个列表,并使用来自三个不同供应商的三个不同文件执行相同的过程。你可以做一些简单的事情来循环不同的站点数据库。将要从中复制审核数据的整个数据库列表放在一个表中,并在其中循环,每次都更改连接字符串。

    然而,你到底为什么希望每个站点有一个大型审计表?如果数据库中的每个表都在发生更改时填充审计表,那么审计表最终会成为一个巨大的性能问题。每次插入、更新和删除都必须点击此表,然后您建议在其上添加导出。在我看来,这似乎是一个有保证的结构,用于锁定、死锁和各种各样的肮脏行为。帮自己一个忙,将每个审计表限制在它正在审计的表中。

        2
  •  1
  •   Michael J Swart    15 年前

    需要考虑的事项: 链接服务器和sp_msforeachdb,作为自己动手解决方案的一部分。 SQL Server集成服务,可从SQL Server Express实例中提取数据。

    祝你好运

        3
  •  1
  •   chenson42    15 年前

    你可以这样做 SymmetricDS

    但是,到目前为止,您需要实现一个自定义IDataLoaderFilter扩展点(Java)来添加额外的列。但是元数据是可用的,因为您的SiteName将是外部id。