如何将表的数据导出到INSERT语句中?

时间:2010-11-03 01:08:28

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

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

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

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

4 个答案:

答案 0 :(得分:19)

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

在MSSQL 2008 R2中:

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

将弹出Generate and Publish Scripts对话框。介绍页面毫无价值。点击“下一步”

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

点击高级,您应该看到:

enter image description here

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

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

  GO
  print 'Processed 200 total records'

答案 1 :(得分:16)

查看SSMS Tool Pack - 它是SQL Server Management Studio的一个很棒的免费附加组件,可以执行很多操作 - 除此之外它还可以从给定的表生成INSERT语句

alt text

答案 2 :(得分:9)

我一直在使用此存储过程:sp_generate_inserts2000版本和2005 (and up)版本。

你这样使用它:

sp_generate_inserts 'thetablename'

或者如果你想过滤:

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

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

答案 3 :(得分:2)

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

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

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

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