从 SQL Server 数据库中脚本所有数据

26

我有两个结构相同的数据库,需要从其中一个数据库中提取数据以INSERT语句的形式生成脚本,以便在另一个数据库上应用该脚本。

我该如何使用Management Studio实现这一操作?

3个回答

71

SSMS 支持在2k8中将所有数据脚本化为INSERTS:

右键单击数据库,选择任务->生成脚本...

只选择表,然后点击下一步。

点击高级选项按钮。向下滚动并选择"要脚本化的数据类型" == 仅数据

输入图像描述

决定是否要在新的查询窗口或文件中查看结果。点击完成。

然后更改脚本顶部的using DBname


3
我不明白所有那些说这件事情做不到的答案。 - ta.speot.is
2
他们可能不知道这可以在SSMS中完成。我刚刚做到了!它有效... - Mitch Wheat
2
我也这样做。这就是为什么我不理解。这就像SSMS 101一样 - 还有导入/导出数据。 - ta.speot.is
这取决于SQL Server的版本。在SQL Server 2005中,它不存在:http://tinypic.com/view.php?pic=23tmceh&s=6(除非我真的错过了什么...) - Alexander Bird
1
SSMS支持在2008中将所有数据脚本化为INSERTS:该问题标记为2008。 - Mitch Wheat

15
您可以使用SQL Server Management Studio完成此操作。以下是步骤 - 如Mitch Wheat所述(适用于SQL Server Management Studio 2012):
  1. 右键单击您的数据库。
  2. 选择任务 > 生成脚本...
  3. 介绍步骤。点击下一步。
  4. 选择对象。选择整个数据库或选定的对象。点击下一步。
  5. 设置脚本选项。这里是关键步骤。为了获取所有数据和对象,请单击高级按钮。然后在高级脚本选项中,将“要脚本化的数据类型”值设置为“架构和数据”。
  6. 单击确定。然后下一步和完成。
您将拥有一个包含数据库架构和数据的脚本文件。

6
你可以使用免费的SSMS Toolpack插件来管理SQL Server。请参阅“从结果集、表或数据库生成插入语句”部分。
更新:好的,对于SSMS 2012中的SSMS Toolpack,引入了许可方案。但是,早期版本的SSMS Toolpack仍然是免费的。

3
SSMS工具包很棒,但你不需要它来将所有数据脚本化为INSERTS;SSMS可以做到这一点。 - Mitch Wheat
1
@Mitch Wheat:是的,SSMS本身可以做到这一点 - 但是在我看来,Toolpack做得更好 - 更直接,少走弯路...此外,Toolpack可以根据查询结果生成INSERTs...而SSMS本身则不能 - 对吗? - marc_s
这个 SSMS 工具包不是免费的,它是试用版。 - Vishal
@Vishal:嗯,要非常准确的话:许可证仅适用于SSMS 2012及更高版本。对于早期的SSMS版本,SSMS Tools Pack仍然是免费的。 - marc_s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接