从Excel工作表生成SQL插入脚本

我有一个大型的Excel工作表,我想添加到我的数据库。

我可以从这个Excel工作表中生成一个SQL插入脚本吗?

我认为使用上述方法之一进行导入是理想的,如果它确实是一个大文件,但您可以使用Excel来创build插入语句:

 ="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')" 

在MS SQL中,您可以使用:

 SET NOCOUNT ON 

放弃显示所有“1行受影响”的评论。 如果你做了很多行并且出错了,每隔一段时间就在一个语句之间放一个GO

您可以通过pipe理工作室界面创build一个适当的表格,并将数据插入表格中,如下所示。 这可能需要一些时间,这取决于数据量,但非常方便。

在这里输入图像说明

在这里输入图像说明

有一个方便的工具,可以节省很多时间

http://tools.perceptus.ca/text-wiz.php?ops=7

你只需要提供表名,字段名称和数据 – 选项卡分开,然后按Go!

根据数据库,可以导出为CSV,然后使用导入方法。

MySQL – http://dev.mysql.com/doc/refman/5.1/en/load-data.html

PostgreSQL – http://www.postgresql.org/docs/8.2/static/sql-copy.html

你可以使用VB来写入一些东西,这些东西将逐行输出到一个文件中,在你的数据的相应的sql语句中添加。 我以前做过这个。

你可以使用下面的excel语句:

 ="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2, "'", "\'")&"','"&SUBSTITUTE(B2, "'", "\'")&"','"&SUBSTITUTE(C2, "'", "\'")&"', "&D2&");" 

这比Hart CO的答案要好,因为它考虑了列名,并消除了由于列中引号引起的编译错误。 最后一列是数字值列的示例,不带引号。

这是另一个工具,工作得很好…

http://www.convertcsv.com/csv-to-sql.htm

它可以采用制表符分隔的值并生成一个INSERT脚本。 只需复制并粘贴,并在步骤2下的选项中勾选“第一行是列名”

然后向下滚动,并在步骤3下,在“Schema.Table或View Name:”框中input您的表名称

请注意删除并创build表格checkbox,并确保在运行之前检查生成的脚本。

这是我find的最快最可靠的方法。

这里是一个到在线automator转换CSV文件到SQL插入到语句的链接:

CSV到SQL

我已经生成了用于将Excel文件数据插入数据库的查询在这个ID和价格是数值和date字段以及。 这个查询总结了我所需要的所有types

 ="insert into product (product_id,name,date,price) values("&A1&",'" &B1& "','" &C1& "'," &D1& ");" Id Name Date price 7 Product 7 2017-01-05 15:28:37 200 8 Product 8 2017-01-05 15:28:37 40 9 Product 9 2017-01-05 15:32:31 500 10 Product 10 2017-01-05 15:32:31 30 11 Product 11 2017-01-05 15:32:31 99 12 Product 12 2017-01-05 15:32:31 25 

有一些工具可以在线转换文件,但要小心使用哪些文件 – 有些会将转换后的文件发布到网上。

SQLizer.io是一个SQL工具,不存储您的数据或在networking上的任何地方发布。

我不得不经常制作SQL脚本,并将它们添加到源代码pipe理中,并将它们发送给DBA。 我从Windows Store中使用这个ExcelIntoSQL应用程序https://www.microsoft.com/store/apps/9nblggh4v5gm它创build完整的脚本与“CREATE TABLE”和INSERTS。