gpt4 book ai didi

sql - 将来自多个远程 SQL 数据库的数据合并到一个 SQL Master DB

转载 作者:搜寻专家 更新时间:2023-10-30 20:21:41 24 4
gpt4 key购买 nike

嗯,我敢肯定这个问题以前有人问过,但我还没有找到一个可靠的答案。我正在创建一个涉及远程办公室通过 Web 服务将数据上传到一个主数据库的解决方案。基本上,每个办公室都会有一个 Windows 服务,每 1 小时左右运行一次,将任何新数据提取到数据集中,通过 http 连接到服务器,然后上传数据集。然后服务器导入数据,一切正常。理论上它应该工作。对。

不是真的,所以每个办公室都有一个唯一的 OfficeID,由服务器分配给它,以保持它们在服务器上的唯一性。起初我以为我已经破解了它,直到我意识到自动增量 PK 的问题。您会看到,所有远程办公室都已经拥有现有数据,并且它们的所有表都具有自动增量 PK 和所有相关约束。具有 OfficeID 的根/父表没有问题,因为它已经是唯一的,问题在于外键,因为当它们到达服务器时,它们将具有 NewID,因此与子表的关系将丢失。

目前我只有两个解决方案。

  1. 删除服务器数据库上的所有自动递增和唯一 PK 约束,并使用 OfficeID 过滤掉重复的外来“键”。或者……
  2. 导入数据集时,使用 Scope_Identity 等内容跟踪每一行及其关联的父行,以便每个子行都与正确的父行关联。

选项 1 看起来更容易实现,因为它对我来说工作较少,但我想知道 sql 的性能以及数据完整性是否会成为问题,因为无法强制执行约束。选项 2 将使事情得到控制,但天哪,所需的代码量令人难以置信。

还有其他我没有考虑的选择吗?如果我只有上面的两个,这是两害相权取其轻。

谢谢约翰

最佳答案

使用 GUID 作为主键。它不是 100% 万无一失(99% 和相当多的 9%),并且会降低性能,但这是在保持理智的同时做到这一点的最简单方法。

关于sql - 将来自多个远程 SQL 数据库的数据合并到一个 SQL Master DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3657787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com