当前位置: 首页 > 面试题库 >

将数据库架构复制到现有数据库

端木令雪
2023-03-14
问题内容

我正在使用Microsoft Sql Server Management
Studio。我目前有一个包含数据的现有数据库,我将其称为DatabaseProd。我还有一个第二个数据库,其中包含用于测试的数据,因此数据既不完全正确也不是最新的。我将这个数据库称为DatabaseDev。

但是,DatabaseDev现在包含新添加的表和新添加的列等。

我想将此新模式从DatabaseDev复制到DatabaseProd,同时保留DatabaseProd的数据。

前任。DatabaseProd包含2个具有列ID和名称的表TableA和具有列ID和jobName的表B,这些表包含我要保留的数据

DatabaseDev包含3个表TableA,这些表的TableA具有列ID,名称和phoneNum TableB,具有列ID和jobName
TableC,具有列ID和文档,这些表包含我不需要的数据

将DatabaseDev模式复制到DatabaseProd,但是保留来自DatabaseProd的数据,因此复制后的DatabaseProd看起来像是具有列ID,名称和phoneNum
TableB,具有列ID的TableA以及具有列ID和文档的jobName TableC的TableA,但是表将包含其原始数据。

那可能吗?

谢谢


问题答案:

您可以使用Red-Gate SQL Compare,这将使您能够比较两个数据库并生成要在源数据库上运行的脚本。您必须支付许可证费用,但会获得14-day trial period

这个工具以及Data Compare和两个我一直坚持以新角色使用的工具,因为它们可以加快开发时间并最大程度地减少人为错误。

另外,使用SQL比较时的一个很好的 技巧 -如果您需要生成一个rollback script,则可以编辑项目(创建之后rollout script),在源和目标之间进行切换,这将创建一个脚本,该脚本会将模式返回到原始状态声明rollout script失败。但是,在执行此
操作 时要 非常小心不要选择与sql compare同步
,而是选择生成脚本,请参见image。我无法上传图像,但是我已经在此处链接了一个图像-您可以看到两个选项,以选择“使用SQL比较生成脚本/同步”。



 类似资料:
  • 问题内容: 如何从一个数据库复制到另一个数据库。 数据库名称visco 我想将所有表从visco数据库复制到新数据库名称作为neptune 我创建了一个没有任何表的数据库,然后尝试从database1.bak文件还原数据库,然后显示错误为 需要查询帮助 问题答案: 使用SQL Server Management Studio: 选项1 ->右键单击要复制的数据库 ->选择“任务”>“生成脚本” -

  • 我使用 liquibase 变更集创建了一个 Postgresql 数据库 A。现在,我正在创建一个应用程序,该应用程序允许创建新的数据库 B 并从数据库 A 实时复制架构,包括 liquibase 变更集,因为数据库以后仍然可以更新。请注意,在数据库 A 中复制的架构时,可能已经更新,从而使基本变更集过时。 我的主要问题是: 如何使用liquibase将PostgreSQL模式x从数据库a(在运

  • 问题内容: 我需要将数据从一个表复制到另一个表。这两个表几乎具有相同的结构,但是位于不同的数据库中。 我试过了 我尝试此操作,但跨数据库出现错误…未实现 问题答案: 这是一个非常简单的任务。只需为此目的使用dblink: 如果您需要定期从外部数据库中获取数据,明智的做法是定义服务器和用户映射。然后,您可以使用较短的语句:

  • 问题内容: 我想为ACL创建一个架构;但是,我在实现它的两种方法之间陷入了困境。 我敢肯定,我不想处理级联权限,因为这会导致后端和站点管理员感到困惑。 我想我也可以只和一个角色一起生活。这样的设置将允许在网站扩展时根据需要添加角色和权限,而不会影响现有角色/规则。 首先,我要规范化数据并使用三个表来表示关系。 查询以确定是否允许某处某个用户的查询如下所示: 然后我意识到我将只有大约20个资源,每个

  • 我在生产中有一个基于Hibernate的应用程序,有一个大型数据库。我需要在这个应用程序中向两个实体(两个表)添加审计,我决定使用Envers。 对于每次插入、更新或删除,Envers都会向实体的审核表中添加一条新记录。 如果从应用程序一开始就支持Envers,那么审计表将在实体创建(INSERT)时填充。 Envers留档非常薄,没有提到任何关于将Envers添加到现有应用程序的内容。 如果我简

  • 问题内容: 可以使用哪种SQL将指定表的架构复制到其他数据库中的表? 问题答案: SELECT INTO将使用相同的架构创建一个新表。因此,您可以: 要仅复制模式而不是数据,请执行以下操作: 这不会复制索引或键。要复制这些内容,请在SQL Sever Management Studio中右键单击该表,然后选择“脚本表为”。这将为您提供一个可以在新数据库上运行的脚本。