SQL Server 2005 中是否有一种自动方法可以从另一个数据库中的多个表创建一个数据库?我需要处理一个项目,并且只需要几个表来在本地运行它,并且我不想备份 50 GB 的数据库。

更新

我尝试了 Management studio 中的任务 -> 导出数据,虽然它使用我想要的表创建了一个新的子数据库,但它没有复制任何表元数据,即......没有 PK/FK 约束,也没有身份数据(甚至选中“保留身份”)。

我显然需要这些才能正常工作,所以我愿意接受其他建议。我将尝试该数据库发布工具。

我没有可用的集成服务,并且两个 SQL Server 无法直接相互连接,因此这些都无法使用。

更新的更新

数据库发布工具工作了,它生成的 SQL 有点错误,因此需要进行一些手动编辑(尝试引用不存在的触发器),但一旦我这样做了,我就可以开始了。

有帮助吗?

解决方案

您可以使用 数据库发布向导 为了这。它允许您选择一组包含或不包含数据的表,并将其导出到 .sql 脚本文件中,然后您可以针对其他数据库运行该脚本以重新创建表和/或数据。

其他提示

首先创建您的新数据库。然后右键单击它并转到上下文菜单中的“任务”子菜单。您应该有某种导入/导出功能。我不太记得了,因为我现在不在工作!:)

从那里,您将可以选择源数据源和目标数据源以及要传输的表。选择表时,单击高级(或选项)按钮并选中名为“保留主键”的复选框。否则,将为您创建新的主键值。

我知道这种方法很难被称为自动,但为什么不使用一些简单的 SELECT INTO 语句呢?

因为我必须首先重建架构、约束和索引。这就是我想要自动化的部分......获取数据是简单的部分。

谢谢大家的建议,看来这个很简单。

集成服务可以帮助完成此任务。该工具提供高级数据转换功能,因此您将能够从大型数据库中获取所需的精确数据子集。

假设测试/调试需要此类数据,您可以考虑应用行采样来减少导出的数据量。

  1. 创建新数据库
  2. 右键单击它,
  3. 任务 -> 导入数据
  4. 按照指示
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top