gpt4 book ai didi

sql - 将来自多个 MS SQL Server 数据库的数据合并为一个

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:43 25 4
gpt4 key购买 nike

我正在寻找一个简单的解决方案来解决 Microsoft SQL Server 的以下问题:

  • 我有一组数据库,它们都是用完全相同的模式构建的
  • 它们都包含不相交的数据集

我现在想将所有这些独立的数据库合并到一个数据库中。所以基本上是一个愚蠢的复制和粘贴。但是,我目前想到一个困难,就是我必须保持外键关系完整,尽管所有的主键都会改变。

所以我关于这个问题的问题是:

  • 我还需要考虑其他问题吗?
  • 是否有一些工具可以执行这个简单的任务,还是我必须编写自己的工具/脚本?

非常感谢,亚历克斯

最佳答案

选项 1:在 SQL 中编写脚本

如果你把它们放在同一个 sql server 上,你可以编写一个跨数据库查询,它可以很容易地从所有数据库中提取行并将行插入到一个数据库中,但正如你所说,由于外键等问题,这可能会变得复杂。

选项 2:使用 SQL 集成服务

在 SQL 中保留解决方案可能意味着使用 SSIS 之类的东西并构建迁移过程,但这无疑会很快变得复杂,因此您最好自己构建一个脚本。

选项 3:使用位于数据库和 ORM 之上的代码

如果数据库模型足够复杂,您可以考虑使用基于代码的方法并在数据库之上构建 ORM 模型。

这会有额外的好处,即可以“一次一棵实体树”完成从一个到另一个的复制,本质上允许您保持事物之间的关系,而无需保留原始 ID,因为当数据移动时可能与其他数据库中使用的相同 ID 发生冲突。

选项 4:导出 => 导入

从源数据库中导出数据,然后导入到目标数据库中,我相信 SQL Server 有一个用于此类操作的向导,因此可以处理整个数据库的操作,但我有一种有趣的感觉上次我尝试这样做时,它只对一次在一张 table 上的简单平面布置非常有效。

我将如何解决这个问题

就我个人而言……我的“最快解决方案”是 ORM 方法,主要是因为我是一名开发人员并且拥有强大的 C# 和 Entity Framework 技能,我将使用它们来执行此操作。

您可能更喜欢

如果您本质上是一名 DBA,尽管您可能更适合“使用 SQL 方法自己编写迁移脚本”(假设您可以将数据库放在一台服务器上)。

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

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