【问题标题】:export all structure (tables, view, etc..) per database导出每个数据库的所有结构(表、视图等)
【发布时间】:2015-07-22 11:00:48
【问题描述】:

我想导出我的数据库的所有结构。原因是我没有两台服务器,所以我需要为 DEV 和 QA 使用同一台服务器。

我知道我可以使用向导,但我想安排此任务。 我找到了这个信息,但是这个过程导出了每个数据库和表的结构。 Export database schema into SQL file

但我想导出每个数据库的所有内容。 我试图修改程序以便能够导出所有内容,但这是不可能的。

有人可以帮助我吗? 提前谢谢你

【问题讨论】:

  • 如果您需要生产数据库的副本用于测试或开发,只需创建数据库的完整备份,然后将其还原到本地服务器上。
  • 使用数据和约束生成脚本或创建完整备份并重新加载
  • 嗨,问题是 PROD 很大,我只想要来自 PROD 的数据。示例:开发团队部署了一些东西,我需要对其进行测试。我没有 QA 环境或其他服务器,所以我需要在同一个 DEV 服务器中进行,但需要复制数据库的结构并从 PROD 中整合数据。如果我有一个名为 STG 的数据库,我想创建一个新的数据库 PRE_STG,并在这个数据库中测试我的新部署。这就是为什么我想要一个 T-sql 脚本之类的东西。
  • 如果您创建一个与 PROD 最相似的数据库,这甚至是一个有效的测试吗?你说你想要来自产品的所有数据,数据就是占用空间的东西。您需要与业务部门交谈并提出您的理由,以获得适当的生产支持环境。
  • 嗨,肖恩,我知道而且我已经这样做了,答案是“暂时没有预算”:(所以我们必须找到一种方法来进行“测试”环境。我也没有不想要 PROD 的所有数据,只需要 2 或 3 个月的历史数据

标签: sql-server tsql stored-procedures


【解决方案1】:

你考虑过这个吗? :

使用与生产相同的结构在 prod 服务器中创建一个新的空 TEST 数据库实例,然后使用向导(不要害怕......在这里和我在一起......)填充较小的表(查找等),直到您拥有除大事务表、日志和连接表等之外的所有内容。

此时,您将其备份,然后删除可操作的 TEST DB。

接下来,您将备份恢复到 DEV/TEST,然后再次使用向导填充所有其他表(来自 PROD)但是...您只过滤所需的数据范围.再次运行备份。你现在有一个干净的 TEST Env,可以根据需要恢复。

当您需要一组更新的测试数据时,您可以转到备份 #1,将其还原,然后根据需要使用过滤器填充事务、连接、日志表。支持它。您现在有了一个新的、可恢复的测试数据库。

一旦您明确定义了流程,您就可以开始编写 VB 实用程序(如果您愿意,可以使用 C#)来执行从 PROD 到 TEST 的过滤复制。

首先以缓慢的手动方式进行,这样您就可以定义每个步骤。然后添加自动化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2019-03-02
    相关资源
    最近更新 更多