【问题标题】:How do I export a table's data into INSERT statements?如何将表的数据导出到 INSERT 语句中?
【发布时间】:2011-05-04 06:19:32
【问题描述】:

如何将表从 SQL Server 2000 数据库导出为 .sql 文件作为一组 INSERT INTO 语句?

表中的一个字段是 Text 数据类型并保存 HTML,因此手动执行此操作将相当耗时。

我可以访问 SQL Server Management Studio 2008 来访问 SQL Server 2000 数据库。

【问题讨论】:

    标签: sql sql-server tsql sql-server-2000 data-export


    【解决方案1】:

    更新,因为当我在寻找答案时,此问答位于搜索结果的顶部。

    在 MSSQL 2008 R2 中:

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

    将弹出生成和发布脚本对话框。简介页面毫无价值。点击“下一步”

    选择“选择特定数据库对象”,然后选择要为其获取插入的表。单击下一步,对话框将前进到“设置脚本选项”。

    点击高级,你应该会看到:

    向下滚动选项列表,直到找到“要编写脚本的数据类型”。单击该行并从下拉菜单中选择“仅数据”。单击“确定”。选择您的保存选项并单击“下一步”几次。

    注意 - 每 100 次插入后,输出还包括以下内容。

      GO
      print 'Processed 200 total records'
    

    【讨论】:

    • 我不知道这不是最佳答案。也许是因为它不适用于 SQL Server 2000。但这正是我想要的。
    • 我已经切换到 SSMS 2012,由于某种原因,脚本不再包含打印“进程 xxx 记录”。如何找回?
    • @ulu 不知道,没有 2012 年。我花了一些时间试图在我发布时摆脱那些打印语句......
    【解决方案2】:

    查看SSMS Tool Pack - 这是一个很棒的免费 SQL Server Management Studio 插件,它可以做很多事情——除此之外,它可以从给定的表生成 INSERT 语句。

    【讨论】:

    • 哇,这个插件看起来很棒,我希望它也适用于 Express Edition。
    • 自 SQLSMS 2012 起,该工具不再免费,但提供 30 天的试用期。请参阅 mobill 的回答,有一种内置方法可以实现这一点。
    【解决方案3】:

    这个存储过程我用了很久:sp_generate_inserts2000版本和2005 (and up)版本。

    你可以这样使用它:

    sp_generate_inserts 'thetablename'
    

    或者如果你想过滤:

    sp_generate_inserts 'thetablename', @from='from ... where ... order by ...'
    

    sp 将返回插入语句作为查询结果。别忘了修改设置:增加每列显示的最大字符数(工具-选项-查询结果)。

    【讨论】:

      【解决方案4】:

      如果您可以使用其他数据库管理应用程序,最快的方法是使用像 SqlDbx 这样具有内置“导出为插入 (SQL)”功能的工具(只需执行查询比如SELECT * FROM Table,然后使用结果网格中的上下文菜单)。

      如果您需要坚持使用 SQL Management Studio,那么您可以使用这样的存储过程:

      http://vyaskn.tripod.com/code/generate_inserts.txt

      它使用 SQL INSERT 语句为目标表的每一行生成一组结果。然后您可以将结果导出到文件中,或者只是将它们复制到剪贴板并粘贴到查询窗口中(即使有几兆字节的数据也可以正常工作)。

      【讨论】:

        猜你喜欢
        • 2019-02-14
        • 1970-01-01
        • 2020-01-20
        • 2012-10-26
        • 1970-01-01
        • 2012-03-28
        • 2012-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多