从Excel工作表生成SQL插入脚本
我有一个大型的Excel工作表,我想添加到我的数据库。
我可以从这个Excel工作表中生成一个SQL插入脚本吗?
我认为使用上述方法之一进行导入是理想的,如果它确实是一个大文件,但您可以使用Excel来创build插入语句:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
在MS SQL中,您可以使用:
SET NOCOUNT ON
放弃显示所有“1行受影响”的评论。 如果你做了很多行并且出错了,每隔一段时间就在一个语句之间放一个GO
您可以通过pipe理工作室界面创build一个适当的表格,并将数据插入表格中,如下所示。 这可能需要一些时间,这取决于数据量,但非常方便。
根据数据库,可以导出为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。