我需要创建一个进程以将多选项卡式Excel电子表格导入SQL Server 2008R2。每个选项卡将是数据库中的不同表格。这需要每周进行一次,并且应该自动进口。理想情况下,我想将电子表格弹出到一个文件夹中(或让一些实习生这样做),并让sql运行一个查看此文件夹的过程,并将数据添加到此数据库中的表中。我还想有另一张表格跟踪进口和日期戳记。我真的不知道从哪里开始,因为在tsql上我是一个非常棒的noob。导入Excel到SQL Server 2008
回答
如果你仅限于TSQL
,上述两个答案会告诉你一些想法。如果您有权访问Data Tools
或Business 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/
微软有一篇不错的文章 - 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表。
您需要通过才能使用使用sp_configure允许使用的 '特设分布式查询' 'OpenDatasource' – illumi
以下是将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/
其非常简单。右键单击SQL服务器(2008)数据库,选择Tasks
并选择Import Data
现在改变DataSource
到Microsoft Excel
。点击Browse
按钮,然后点击Next
,选择Excel文件的路径。
之所以选择Sql Server instance
并选择其中的excel要导入的数据库。
选择Copy data from one or more tables or views
并单击Next
。
现在选择的薄片要导入到Sql Server
。
点击Next
现在点击Finish
现在向导从Excel
导入数据到Sql Server
并单击Close
。
下面是表
看看OP在哪里说“...应该是自动化的......” – kfm2000
- 1. 将Excel 2010导入到Sql Server 2008中
- 2. 如何导入excel到sql server 2008?
- 3. 导入Excel文件到SQL Server 2008
- 4. 在sql server 2008中导入excel文件
- 5. SQL Server 2008 R2的Excel导入
- 6. SQL Server 2008导入excel文件
- 7. 导入Excel到SQL Server CE
- 8. Excel 2010到Sql Server 2008插入状态
- 9. 将Excel数据导入到SQL Server
- 10. 数据导入SQL Server 2008
- 11. C#代码导入Excel数据到SQL Server 2008
- 12. 从Excel 2007导入数据到SQL Server 2008(两个关系表)
- 13. 导入数据从Excel到SQL Server 2008#2
- 14. 无法使用SQL Server 2008 R2中的OPENROWSET导入到Excel
- 15. 将excel数据导入到SQL Server 2008中
- 16. 导入txt文件到SQL Server 2008
- 17. 从SQL Server导出到Excel
- 18. 卡住导入向导SQL Server 2008 R2(来自Excel)
- 19. 从SQL Server 2008导入和导出向导到SQL Azure
- 20. 从SQL Server导入数据到Excel不导入密钥
- 21. 将SQL Server 2008表导出到Excel中的Excel中#
- 22. 如何将Sql Server 2008数据库导入到SQL Server 2012中
- 23. 无法打开导入到SQL Server 2008的SQL Server 2000 DTS包
- 24. SQL Server 2005从Excel导入
- 25. SSIS包导入Excel文件到SQL Server
- 26. 将excel文件导入到sql server
- 27. 从Excel/CSV导入数据到SQL Server
- 28. 将Excel 2010导入到SQL Server中
- 29. 从Excel导入数据到SQL Server
- 30. 从Excel导入数据到SQL Server
我读过这篇文章,它看起来很漂亮ightforward。我会为每个tab \ table创建不同的数据流分支吗? – d90
@NicholasJDininno对于多个工作表,我将有一个数据流任务,并且在该数据流任务中,具有多个ADO.NET或OLE DB连接目标的Excel源。如果你选择,你可以做几个数据流;随你便。 – Question3CPO