我已经建立了一个包含 6个表的数据库,大致 175个字段。这些字段中大约有130个来自 CSV 的数据。
目前,手持设备会导出此 CSV ,并将其读入电子表格,但会移至数据库。因此,在有人上传 CSV 的前端,它会填充数据库。
问题:
我正在尝试找出逐行打破 CSV 并将某些信息放入某些表格的最佳方法。那可能吗?如果是这样的话?
我希望我可以查询为每个 CSV 字段创建header
并将其映射到数据库字段(因为CSV将始终采用相同的顺序)。
答案 0 :(得分:0)
通过列示例
中的关联数组对其进行标记ID,名称,颜色 1,JO,红 2,MA,蓝色 3,J,黄
获取一个数组中的第一行,因此只需通过索引比较循环中的值
答案 1 :(得分:0)
我不认为它是一个RBAR问题。如果将文件按原样加载到单个临时表中,则可以为每个表运行以下内容: INSERT INTO destTable(col1,col2) SELECT col1,col2 来自StageTable 在哪里col3 ='标准'
这样,你就可以保持一切基于集合。当然,这取决于所涉及的记录数量,但逐行处理数据和TSQL通常不太适合。 SSIS比TSQL做得好得多。