9

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

4

4 回答 4

6

microsoft 有一篇不错的文章 - 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 表。

于 2013-10-10T17:27:18.380 回答
3

下面是将 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/

于 2013-10-10T17:27:35.033 回答
3

如果您仅限于TSQL,以上两个答案将向您展示一些想法。如果您可以访问其中一个Data ToolsBusiness IntelligenceSSIS则可以在 Excel 工作簿中的每个工作表每次都匹配的情况下自动执行此操作。使用SSIS,您将使用数据流任务,并且每个工作表都将导入您想要的表中。下周准备好文件时,将其放入文件夹并运行SSIS包。

但是,如果工作表名称发生变化(例如,前一周的工作表名为 Cats、Dogs、Rain,而下一周的工作表名为 Sulfur、Fire、Hell),那么这将导致包装破损。否则,如果只有工作表中的数据发生变化,那么这可以通过 SSIS 完全自动化。

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

于 2013-10-10T18:34:56.303 回答
1

它非常简单。右键单击Sql Server(2008)中的数据库,选择Tasks并选择Import Data

在此处输入图像描述



现在更改DataSourceMicrosoft Excel. Browse单击按钮选择 Excel 文件的路径,然后单击Next

在此处输入图像描述



选择Sql Server instance并选择要导入 excel 的数据库。

在此处输入图像描述



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

在此处输入图像描述



现在选择要导入的工作表Sql Server

在此处输入图像描述



点击Next

在此处输入图像描述



现在点击Finish

在此处输入图像描述



现在向导将数据导入ExcelSql Server并单击Close

在此处输入图像描述



这是桌子

在此处输入图像描述

于 2015-04-30T16:17:35.280 回答