为SQL Server表生成INSERT语句?

我们正在编写一个新的应用程序,在测试时,我们需要一些虚拟数据。 我已经使用MS Access将这些数据添加到相关表格中。

每隔一段时间,我们都想“刷新”相关表格,这意味着全部删除它们,重新创建它们,并运行已保存的MS Access追加查询。

第一部分(删除和重新创建)是一个简单的sql脚本,但最后一部分让我感到畏缩。 我想要一个包含一堆INSERT的安装脚本来重新生成虚拟数据。

我现在有表格中的数据。 从该数据集自动生成大量INSERT语句的最佳方法是什么?

我正在考虑类似TOAD(对于Oracle),您可以右键单击一个网格并单击另存为 - >插入语句,然后它只会在您想要的任何位置转储大型SQL脚本。

我能想到的唯一方法是将表格保存到Excel表格中,然后编写一个Excel公式来为每一行创建一个INSERT,这当然不是最好的方法。

我正在使用2008 Management Studio连接到SQL Server 2005数据库。


微软应该宣传SSMS 2008的这一功能。您正在寻找的功能已内置到生成脚本实用程序中,但该功能在默认情况下处于关闭状态,并且必须在脚本编写表时启用。

这是一个快速运行的过程,为您的表中的所有数据生成INSERT语句,不使用SQL Management Studio 2008的脚本或加载项:

  • 右键单击数据库并转到任务 > 生成脚本
  • 选择要生成脚本的表(或对象)。
  • 转到设置脚本选项选项卡,然后单击高级按钮。
  • 在“ 常规”类别中,转到要编写脚本的数据类型
  • 有3个选项: Schema Only仅数据Schema和Data 。 选择适当的选项并点击OK
  • 然后您将直接从SSMS获取CREATE TABLE语句和所有INSERT语句。


    我们使用这个存储过程 - 它允许你定位特定的表,并使用where子句。 你可以在这里找到文字。

    例如,它可以让你这样做:为表'titles'生成INSERT语句:

    EXEC sp_generate_inserts 'titles'
    

    正如@Mike Ritacco所提到的,但更新为SSMS 2008 R2

  • 右键单击数据库名称
  • 选择任务>生成脚本
  • 根据您的设置,介绍页面可能会显示或不显示
  • 选择'选择特定的数据库对象',
  • 展开树视图并检查相关表格
  • 点击下一步
  • 点击高级
  • 在“常规”部分下,选择“适用于脚本的数据类型”
  • 完成向导
  • 然后,您将直接从SSMS中获取数据的所有INSERT语句。

    编辑2016-10-25 SQL Server 2016 / SSMS 13.0.15900.1

  • 右键单击数据库名称

  • 选择任务>生成脚本

  • 根据您的设置,介绍页面可能会显示或不显示

  • 选择'选择特定的数据库对象',

  • 展开树视图并检查相关表格

  • 点击下一步

  • 点击高级

  • 在“常规”部分下,选择“适用于脚本的数据类型”

  • 点击确定

  • 选择是否希望输出转到新的查询,剪贴板或文件

  • 点击下一步两次

  • 您的脚本根据您在上面选择的设置进行准备

  • 点击完成

  • 链接地址: http://www.djcxy.com/p/16937.html

    上一篇: generate INSERT statements for a SQL Server table?

    下一篇: SQL update query using joins