2013-10-10 187 views
6

我需要创建一个进程以将多选项卡式Excel电子表格导入SQL Server 2008R2。每个选项卡将是数据库中的不同表格。这需要每周进行一次,并且应该自动进口。理想情况下,我想将电子表格弹出到一个文件夹中(或让一些实习生这样做),并让sql运行一个查看此文件夹的过程,并将数据添加到此数据库中的表中。我还想有另一张表格跟踪进口和日期戳记。我真的不知道从哪里开始,因为在tsql上我是一个非常棒的noob。导入Excel到SQL Server 2008

回答

2

如果你仅限于TSQL,上述两个答案会告诉你一些想法。如果您有权访问Data ToolsBusiness Intelligence以及SSIS,则可以假定Excel工作簿中的每个表单匹配每次都可以自动执行此操作。使用SSIS,您将使用数据流任务,并将每张表导入到您想要的表中。当您下周准备好文件时,您会将其放入该文件夹并运行SSIS包。但是,如果图表名称发生变化(例如,一周的床单被称为Cats,Dogs,Rain,下一周是硫,火,地狱),那么这会导致包裹破损。否则,如果只有工作表内的数据发生变化,那么这可以通过SSIS完全自动化。

示例文章:https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/

+0

我读过这篇文章,它看起来很漂亮ightforward。我会为每个tab \ table创建不同的数据流分支吗? – d90

+0

@NicholasJDininno对于多个工作表,我将有一个数据流任务,并且在该数据流任务中,具有多个ADO.NET或OLE DB连接目标的Excel源。如果你选择,你可以做几个数据流;随你便。 – Question3CPO

5

微软有一篇不错的文章 - http://support.microsoft.com/kb/321686 - 概述了所涉及的过程。

的过程简直是

SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 
    'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$] 

哪里XLImport3是要导入到表中的数据源是要从导入Excel表。

+0

您需要通过才能使用使用sp_configure允许使用的 '特设分布式查询' 'OpenDatasource' – illumi

2

以下是将csv文件中的数据插入给定表的代码。我不是项目的全部要求,但是如果我是你,我只需将每个表分成不同的文件,然后运行一个将数据插入到每个表中的proc。

BULK 
INSERT TABLE_NAME 
FROM 'c:\filename.csv' 
WITH 
(
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 

insert into import_history ('filename', 'import_date') values ('your_file_name', getdate()) 

而且,跟踪进口和时间戳的表格中,你可以只中插入一些数据表中的每个批量插入后由上述可见。

而且,这里有一个链接到批量插入教程从CSV文件也可能会有帮助:http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

0

其非常简单。右键单击SQL服务器(2008)数据库,选择Tasks并选择Import Data

enter image description here



现在改变DataSourceMicrosoft Excel。点击Browse按钮,然后点击Next,选择Excel文件的路径。

enter image description here



之所以选择Sql Server instance并选择其中的excel要导入的数据库。

enter image description here



选择Copy data from one or more tables or views并单击Next

enter image description here



现在选择的薄片要导入到Sql Server

enter image description here



点击Next

enter image description here



现在点击Finish

enter image description here



现在向导从Excel导入数据到Sql Server并单击Close

enter image description here



下面是表

enter image description here

+0

看看OP在哪里说“...应该是自动化的......” – kfm2000