【问题标题】:TSQL - Data pass between DBTSQL - 数据库之间的数据传递
【发布时间】:2018-06-13 06:55:29
【问题描述】:

TSQL - 数据库之间的数据传递

你好,

如主题中所示,我正在告诉我如何在两个不同的软件之间传输数据。 每个都有一个 SQL Server 数据库。他们很可能在同一台服务器上,所以只有不同的时间,我可以同时访问它们。如果数据库在不同的网络上,我将实现一个 VPN。

示例: 在“DB_a”的“anagrafica”表中,我有客户的个人数据(姓名、姓氏、出生、性别......) 在“DB _b”的“anagrafica”表中,我还没有这个注册表。

-然后我想从“DB_a.anagrafica”传递到“DB_b.anagrafica”这条记录,显然id为MAX(DB_b.id),因为在“DB_b.Registry”表中已经有记录相对标识。 (案例插入);

  • 或者如果在 DB_a.anagrafica 上更新了数据,则必须在“DB_b.anagrafica”字段上执行更新;

  • 如果必须在“DB_b”的弱表中插入新记录,例如。 “DB_b.pagamenti”有一个唯一的表id和一个指向强个人数据表id的外部key; (可能weak表中的数据可以多两个字段start_date和data_fine),这个表是1:N

-这两个数据库由两个不同的软件公司编写,因此字段类型很可能不同。 (字符、数字、日期和时间等..)然后是 CAST、CONVERT 等。

  • 最后也可以有回图来完成整个es。来自“DB_b”。注册到“DB_a.anagrafica”。

也就是说有一个已经存在的软件让你在两个数据库中间是一个交换? (最有可能使用 Windows 调度程序进行调度)。或存储过程。

你有更多的方向给我吗?

提前致谢

【问题讨论】:

    标签: sql-server database tsql


    【解决方案1】:

    在这种情况下,最重要的问题是:是否存在领先系统?

    这种场景中最难的就是:处理并发。

    对于您的场景,回答您最初的问题(“TSQL - DB 之间的数据传递”)似乎相当容易:

    如果两个数据库可以“看到”对方,只需implement a linked server。您可以read about OPENQUERY 并点击本页底部的链接。

    典型的方法是

    • 将更改直接转移到目标(在领先系统的情况下)
      使用时间戳查找并发更改

    • 将所有更改转移到临时表(一个用于两个或一个用于每个)
      使用任何适当的工具(T-SQL 或您喜欢的任何编程语言)定期读取此/这些表,处理业务规则并相应地更新两个系统。

    您可能会考虑通过标准复制链接的两个系统中结构相同的临时表。

    由于您的系统相似但不完全相同,因此不会有任何神奇的自动奇迹工具 ;-)

    【讨论】:

    • 你听说过“数据分发服务”吗?
    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 2018-04-27
    • 2014-05-22
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多