是否有任何免费工具可以在MS SQL Server中生成“INSERT INTO”脚本?

时间:2009-01-08 01:05:31

标签: sql sql-server

在使用SQL Server时,我唯一没有自动化工具的是可以创建INSERT INTO脚本的程序。我并不急需它,所以我不打算花钱。我只是想知道是否有任何东西可用于生成INSERT INTO脚本给定现有数据库而不需要花费很多钱。

我已经通过SQL Server Management Studio Express搜索,但没有找到这样的功能。如果它存在于SSMSE中,那么我从未找到它。

10 个答案:

答案 0 :(得分:19)

此网站包含许多有用的脚本,包括generating inserts

您可以使用sp_msforeachtable生成整个数据库。

更新:内置功能可将数据脚本编写为SQL Server Management Studio 2008(以后版本)中的INSERT。

SQL Server 2008

右键单击SSMS中的数据库,选择Tasks –> Generate Scripts,确保数据库突出显示,然后单击“下一步”。向下滚动选项列表到“表/视图选项”部分,并将“脚本数据”更改为True。

enter image description here

SQL Server 2012

右键单击SSMS中的数据库,选择Tasks –> Generate Scripts。选择要为其生成脚本化INSERT的表,然后单击Next。选择要将输出发送到的位置(例如新的查询窗口),然后单击Advanced按钮(由于某种原因,它位于“保存到文件”部分!)。将选项列表向下滚动到“脚本数据类型”选项,并将其更改为“仅数据”或“架构和数据”。点击Next两次。

enter image description here

enter image description here

答案 1 :(得分:16)

您还可以将此加载项用于提供此功能的SSMS: http://www.ssmstoolspack.com/

它还提供其他有用的功能。

答案 2 :(得分:4)

有一个名为“sp_generate_inserts”的存储过程,你可以谷歌搜索它。它将采用一个表并将其转换为插入语句。

答案 3 :(得分:1)

不确定快速版本,但正常版本的SMSS,您可以右键单击选项卡并将表格编写为选择,将更新插入新窗口,剪贴板或文件。

您还可以将MyGeneration或CodeSmith视为代码生成器。我相信它们是免费的,并且应该有soem模板,给定DB会为你创建一堆存储过程。

答案 4 :(得分:1)

如果您只想插入测试数据,并且要插入的行数少于64K,则可以使用Excel(这就是我所做的)。

例如,如果将值放在单元格A1,B1和C1中,然后在D1中输入以下公式,则会得到一个可用的插入语句:

=“INSERT INTO TEST(col1,col2,col3)VALUES(”& a1&“,”& b1&“,”& c1&“);”

然后只需填写,您就可以随时修改数据。

答案 5 :(得分:0)

在SQL Server Management Studio Express中,右键单击对象资源管理器侧栏中的表,然后选择“脚本表为/ INSERT到/新查询编辑器窗口”。

答案 6 :(得分:0)

没有多少人知道这一点,但您可以使用sub sonic(http://subsonicproject.com/)来编写数据库结构及其中的数据。

命令非常简单(我使用命令行),例如。

sonic.exe scriptdata / server testserver / db testdb。

这会将所有数据编写成插入语句:),很好,干净。如果你想让它变得更容易而不使用命令行,你也可以将它挂钩到visual studio。

答案 7 :(得分:0)

尝试DBSourceTools。 http://dbsourcetools.codeplex.com
它具有为数据库中的任何表生成插入脚本的功能。

答案 8 :(得分:0)

答案 9 :(得分:0)

您可以从此存储过程生成insert into语句。 http://raresql.com/2011/12/20/how-to-generate-insert-statements-from-table-data-using-sql-server/ 但通常我们会像这样生成insert into语句:

    Insert into [table] (...) values (...)

但是,在此过程中,您可以像这样生成insert into语句

    Insert into [table]
    select * from [table] Union ALL
    select * from [table]

因此,您可以在插入之前查看数据。

姆兰