从Excel中插入超过1000行到SQLServer

时间:2014-06-20 13:43:07

标签: sql sql-server sql-server-2008 insert

我是Sql的新手,但是将excel文档中超过1000行插入数据库的最佳方法是什么(Sql server 2008.)

例如,我使用以下查询:

   INSERT INTO mytable(companyid, category, sub, catalogueref)
   VALUES
   ('10197', 'cat', 'sub', '123'),
   ('10197', 'cat2', 'sub2', '124')

这个工作正常,但插入1000条记录有限制,我有19000条记录而且我真的不想做19条单独的插入语句和另一个问题,就是公司ID总是一样的是有更好的方法然后写它19000次?

5 个答案:

答案 0 :(得分:15)

只需在Excel或其他程序中编辑数据,即可为每个语句创建N个插入语句,并且只有一个插入,您将拥有无限数量的插入。例如......

INSERT INTO table1 VALUES   (6696480,'McMurdo Station',-77.846,166.676,'Antarctica','McMurdo')
INSERT INTO table1  VALUES  (3833367,'Ushuaia',-54.8,-68.3,'America','Argentina')
...19,000 later
INSERT INTO table1 VALUES   (3838854,'Rio Grande',-53.78769,-67.70946,'America','Argentina')

答案 1 :(得分:5)

Microsoft向SQL Server提供import wizard。我已经用它来从其他数据库和电子表格迁移数据。它非常强大且易于使用。

答案 2 :(得分:2)

有几个选项,Erik建议的导入向导,或SSIS是另一个好选择。

在这里阅读: Import Excel spreadsheet columns into SQL Server database

答案 3 :(得分:0)

您应该可以使用多个交易进行插入 -

BEGIN TRANSACTION
 Insert into mytable(companyid,category,sub,catalogueref)
   values
   ('10197','cat', sub','123'),
   ('10197','cat2', sub2','124')
   ...998 more rows...
COMMIT TRANSACTION
go
BEGIN TRANSACTION
 Insert into mytable(companyid,category,sub,catalogueref)
   values
   ('10197','cat', sub','123'),
   ('10197','cat2', sub2','124')
   ...998 more rows...
COMMIT TRANSACTION

答案 4 :(得分:0)

INSERT INTO mytable(companyid, category, sub, catalogueref)
SELECT companyid, category, sub, catalogueref from (VALUES
('10197', 'cat', 'sub', '123'),
('10197', 'cat2', 'sub2', '124')
//more 1000 rows...
as sub (companyid, category, sub, catalogueref)