使用SSIS将每个Excel文件导入新的SQL表
我有超过50个Excel文件,我想将它们中的每一个导入到SQl服务器中的新SQL表中,该表的名称是Excel的名称文件 我怎样才能实现使用SSIS?使用SSIS将每个Excel文件导入新的SQL表
每个文件都有自己的列名。所以我需要一种方法来循环在文件夹中的每个文件,并获得每个文件的数据到新的SQL表
这只是给你一个大致的想法可以做什么。
导入之前,在SQL Server中创建一个临时表
CREATE TABLE dbo.ExcelStaging
(LineId INT NOT NULL IDENTITY(1,1)
, FileLine VARCHAR(2000)
, FileName VARCHAR(50)
)
截断临时表中每个文件。
创建脚本任务,读取您的文件的每一行,并插入到登台表格“FileLine”中。 LineId = 1应始终保存原始文件列标题。你必须小心选择哪个分隔符,逗号分隔符或固定宽度?
一旦文件加载到表中,执行SQL任务 - 一个存储过程
一个。基于LineID = 1的文件名和FileLine,创建一个新的SQL表。新表可能看起来很丑 - 每个列数据类型都是varcher,因为不知道每个字段的数据类型是什么。
b。插入到新表中选择FileLine的子字符串作为临时表中的列。这里你选择的分隔符将决定你如何为每一列进行子串处理。
不错的想法,但我需要保持列数据类型与Excel相同 – LattaliAhmed
好的,您需要在导入文件之前创建表。通过读取文件名和第一行文件内容,您或计算机如何确定哪些数据类型? – Wendy
SQL服务器中的导入/导出向导可以做到这一点,我的目标是在SSIS中做同样的事情,而无需手动创建每个表。 – LattaliAhmed
这可能会帮助你:https://www.codeproject.com/Articles/368530/Dynamic-Excel-file-loading-with-SSIS –
这很有趣,但这不是我要找的 – LattaliAhmed
这可能会成为BIML的一份工作,具体取决于学习BIML是否更快,或者更快地通过手工创建每个数据流。 –