如何从生成脚本中恢复

Posted

技术标签:

【中文标题】如何从生成脚本中恢复【英文标题】:How to Restore From Generate Scripts 【发布时间】:2015-04-17 06:08:30 【问题描述】:

我已经使用“生成脚本”选项为 SQL Server 数据库创建了备份,并且包含了数据。

我已经分别创建了脚本,因此每个对象都有一个文件。

我如何知道运行脚本的顺序?

【问题讨论】:

快速回答是你没有。摆脱这个坑的一种方法是在执行脚本之前禁用约束(以任何顺序)并在最后重新启用它们。前提是你知道自己在做什么。 如果您可以访问旧数据库,您可以创建 .bak 文件或复制 .mdf、.ldf 文件 【参考方案1】:
    删除约束 创建对象 插入数据 重新创建约束

现在您需要弄清楚哪些脚本做了什么并相应地对它们进行排序。我建议您使用快速工具(以您选择的任何语言、c#、批处理文件,甚至 SQL 编码)运行它们,读取它们从表中执行的顺序。这样,即使失败,您也可以轻松重新安排。顺便说一句,我们正在查看多少个脚本?如果大于 50 ,最好有系统和有计划的方法。

如果可能,最好进行新的完整备份和恢复(当然不涉及任何脚本)。

【讨论】:

以上是关于如何从生成脚本中恢复的主要内容,如果未能解决你的问题,请参考以下文章

如何利用pg_dumpall备份的文件,恢复数据库

7 MSSQL数据库备份与恢复

如何从 IntelliJ IDEA 中的模型类生成 Flyway 迁移脚本?

mysql数据库被攻击怎么恢复数据

如何从脚本的外部 html 中获取价值

如何将sql2008r2数据库恢复到sql2005