csv文件包含8列(col1,col2,...,col8),文件名也包含必须插入表中的日期。
如果表中的列数和csv文件中的列相等,则以下查询将文件中的所有记录导入到表中:
query += "BULK INSERT real_data FROM '" + path + "' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')";
到目前为止,我还没有找到修改查询的解决方案,以便新记录可以包含从文件名中提取的日期。无论如何,我已经创建了一个提取日期的函数:
DateTime eventTime = extractDate(path);
并且希望将eventTime插入到从文件导入的每个记录的第9列。
有没有人知道如何修改/创建查询语句以从文件导入8列,并为每个导入的记录添加日期为第9列?
谢谢!
答案 0 :(得分:5)
您不能向使用BULK INSERT命令加载的数据集添加“任意列”。 (如果你想处理它们的复杂性,SSIS包可以做到这一点。)
以下技巧有点复杂,但我已多次成功使用它: