问题。
我经常收到包含不同列的文件。虽然列名称是一致的,但是当某些文本文件具有更多或更少列时会出现问题。
此外,这些文件的排列不一致,我想导入数据库表中每个文件的所有内容。
我尝试使用ssis包导入它们但是当它必须导入其他文件时仍然失败,我该如何导入这些文件。
这是可能的,还是我在浪费时间?我对ssis很新。
文件1
Name|Surname|ID|Address
文件2
Name|Surname|Address|Spouse|Work|Child1|Child2
导入后的数据库表
Name|Surname|ID|Address|Spouse|Work|Child1|Child2
在顶部只是一个简单的例子,但原始文件的列数要复杂得多。
答案 0 :(得分:1)
将文件内容插入SQL Server数据库的最简单方法是使用Bulk Insert进程
的示例BULK INSERT EmployeeDB.dbo.Employees
FROM 'C:\Data\EmployeeData_c.dat'
WITH
(
DATAFILETYPE = 'char',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\r\n'
);
由于您的文件格式不同,最简单的方法之一如下:
(1)对于每种文件格式,都有一个表格。你可以称之为临时表。
(2)您将文件内容批量插入此临时表
(3)在批量插入此临时表后,您可以插入主表
您可以使用SQLCMD等命令行工具来实现上述目标。您也可以通过SSIS实施。通常,如果您希望对文件进行更复杂的处理,则可以访问SSIS。在您的情况下,优先使用命令行工具本身。