2012-01-06 213 views
3

有没有办法在Excel中从一行数据对SQL Server执行批量更新?我们拥有包含超过2000多行的excel文档,需要在SQL Server中导入。有没有一种方法可以批量插入这些家伙而不用一次又一次地调用数据库来一次插入一行?批量从Excel插入到SQL Server中

回答

7

SQL Server集成服务提供了一个基于向导的导入,它可以帮助您轻松设置一个包来导入一个excel文件。您甚至可以保存包裹并安排它在将来重复导入。

您还有其他选择。如果将excel文件保存为逗号或制表符分隔的文本文件,则可以使用BULK INSERT t-sql命令。请参阅an example on the sqlteam.com forums

另一个T-SQL选项是SELECT INTO。 Excel是来自T-SQL的有效OLEDB或ODBC数据源。 Here's an example

还有一个名为BCP的Microsoft SQL Server附带的命令行导入工具。有关BCP和其他选项的良好文档可以在MSDN上找到:http://msdn.microsoft.com/en-us/library/ms187042.aspx

+0

+1对于BCP。我曾经用过一次,我很惊讶它输入的速度有多快,大约有50万行。 – Aaron 2012-01-06 18:24:07

+0

将研究这些链接。这些选项是自动的,正确的?我的意思是用户上传一个Excel文件,并在现场进行处理。 – 2012-01-06 18:27:54

+0

@MikeFlynn很高兴他们帮忙。 – 2012-01-06 18:31:50

1

是的!使用SSMS的导入/导出向导!使用Excel源和SQL Server目标。如果您将Excel表单转换为CSV文件,您也可以在BIDS中创建SSIS包或使用T-SQL中的BULK INSERT语句。

1

您可以创建一个SSIS包来读取您的Excel文件。创建任务时,可以选择“Excel”的连接类型,然后它可以帮助您创建“Excel连接管理器”。然后,您可以轻松地将数据发送到您的SQL Server表。这里有关于how to import an Excel file into SQL Server(2005)的教程。看一看。