Sql 用100多个数据填充表的存储过程
我是SQL的新手,我正在寻找一种有效的方法将大量数据(确切地说是600条记录)插入到数据库表中。数据分为4列 到目前为止,我一直在考虑这样做Sql 用100多个数据填充表的存储过程,sql,sql-server,Sql,Sql Server,我是SQL的新手,我正在寻找一种有效的方法将大量数据(确切地说是600条记录)插入到数据库表中。数据分为4列 到目前为止,我一直在考虑这样做 insert into myTable(col1, col2, col3, col4) values('value 1', 'value 2', 'value 3', 'value 4') 但是输入600张这样的记录并不是一件有趣的事。如何加快向表中添加值的速度?如果这是一项一次性任务,那么我通常会将数据加载到电子表格中,创建一个简单的公式,将此公式复制
insert into myTable(col1, col2, col3, col4)
values('value 1', 'value 2', 'value 3', 'value 4')
但是输入600张这样的记录并不是一件有趣的事。如何加快向表中添加值的速度?如果这是一项一次性任务,那么我通常会将数据加载到电子表格中,创建一个简单的公式,将此公式复制到所有行,然后将结果复制粘贴到SQL脚本中,这样就完成了。无论是600条记录还是100万条记录,这项工作只需几分钟。
简单示例-电子表格如下所示:
+--------+--------+--------+--------+--------------------------------------------------------------------------------------+
| A | B | C | D | E |
+--------+--------+--------+--------+--------------------------------------------------------------------------------------+
| col1 | col2 | col3 | col4 | Formula |
| val 1 | val 21 | val 1 | val 21 | ="INSERT INTO table( col1, col2, col3) VALUES( '"&A2&"','"&B2&"','"&C2&"','"&D2&"');" |
| val 2 | val 22 | val 2 | val 22 | |
| val 3 | val 23 | val 3 | val 23 | |
| val 4 | val 24 | val 4 | val 24 | |
| val 5 | val 25 | val 5 | val 25 | |
| val 6 | val 26 | val 6 | val 26 | |
| val 7 | val 27 | val 7 | val 27 | |
| val 8 | val 28 | val 8 | val 28 | |
| val 9 | val 29 | val 9 | val 29 | |
| val 10 | val 30 | val 10 | val 30 | |
| val 11 | val 31 | val 11 | val 31 | |
| val 12 | val 32 | val 12 | val 32 | |
| val 13 | val 33 | val 13 | val 33 |
.....
.....
.....
INSERT INTO table( col1, col2, col3) VALUES( 'val 1','val 21','val 1','val 21');
E列中的公式为:
="INSERT INTO table( col1, col2, col3) VALUES( '"&A2&"','"&B2&"','"&C2&"','"&D2&"');"
此公式的计算结果如下:
+--------+--------+--------+--------+--------------------------------------------------------------------------------------+
| A | B | C | D | E |
+--------+--------+--------+--------+--------------------------------------------------------------------------------------+
| col1 | col2 | col3 | col4 | Formula |
| val 1 | val 21 | val 1 | val 21 | ="INSERT INTO table( col1, col2, col3) VALUES( '"&A2&"','"&B2&"','"&C2&"','"&D2&"');" |
| val 2 | val 22 | val 2 | val 22 | |
| val 3 | val 23 | val 3 | val 23 | |
| val 4 | val 24 | val 4 | val 24 | |
| val 5 | val 25 | val 5 | val 25 | |
| val 6 | val 26 | val 6 | val 26 | |
| val 7 | val 27 | val 7 | val 27 | |
| val 8 | val 28 | val 8 | val 28 | |
| val 9 | val 29 | val 9 | val 29 | |
| val 10 | val 30 | val 10 | val 30 | |
| val 11 | val 31 | val 11 | val 31 | |
| val 12 | val 32 | val 12 | val 32 | |
| val 13 | val 33 | val 13 | val 33 |
.....
.....
.....
INSERT INTO table( col1, col2, col3) VALUES( 'val 1','val 21','val 1','val 21');
如果将E列中的公式复制到所有行的单元格中,您将获得一个准备运行的脚本,只需将E列的内容复制到剪贴板并粘贴到文本文件:
INSERT INTO table( col1, col2, col3) VALUES( 'val 1','val 21','val 1','val 21');
INSERT INTO table( col1, col2, col3) VALUES( 'val 2','val 22','val 2','val 22');
INSERT INTO table( col1, col2, col3) VALUES( 'val 3','val 23','val 3','val 23');
INSERT INTO table( col1, col2, col3) VALUES( 'val 4','val 24','val 4','val 24');
INSERT INTO table( col1, col2, col3) VALUES( 'val 5','val 25','val 5','val 25');
INSERT INTO table( col1, col2, col3) VALUES( 'val 6','val 26','val 6','val 26');
INSERT INTO table( col1, col2, col3) VALUES( 'val 7','val 27','val 7','val 27');
INSERT INTO table( col1, col2, col3) VALUES( 'val 8','val 28','val 8','val 28');
INSERT INTO table( col1, col2, col3) VALUES( 'val 9','val 29','val 9','val 29');
INSERT INTO table( col1, col2, col3) VALUES( 'val 10','val 30','val 10','val 30');
INSERT INTO table( col1, col2, col3) VALUES( 'val 11','val 31','val 11','val 31');
INSERT INTO table( col1, col2, col3) VALUES( 'val 12','val 32','val 12','val 32');
INSERT INTO table( col1, col2, col3) VALUES( 'val 13','val 33','val 13','val 33');
INSERT INTO table( col1, col2, col3) VALUES( 'val 14','val 34','val 14','val 34');
INSERT INTO table( col1, col2, col3) VALUES( 'val 15','val 35','val 15','val 35');
INSERT INTO table( col1, col2, col3) VALUES( 'val 16','val 36','val 16','val 36');
...
...
...
若你们的数据已经是数字格式,你们可以编写一个脚本(php,excel公式,…),生成你们的insert语句。在您复制/通过数据库管理器(phpMyAdmin、Toad、sqldeveloper等)之后,@Camille-这似乎是个好主意。值得一试。下划线\u d-抱歉,如果是SQL Server,我更新了标题,并且使用SSMS,我的转到此处将是数据导入向导。您的输入看起来如何?cvs文件还是什么?你能发一封信吗example@GuidoG-不,它是一个.txt文件。但是我要把它放到excel文件中,然后将数据导入SQLExcelle!,正是我要找的!。谢谢