2017-02-21 42 views
0

我建立了一个数据库6桌,大致175场。大约130个这些字段将从CSV上的数据填充。阅读长CSV文件,并分成多个表

目前,手持设备导出此CSV并将其读入电子表格,但它正在转移到数据库。因此,在前端有人上传CSV时,它将填充数据库。

问:

我试图找出打破这种CSV了一行行,并把某些信息到某个表的最佳途径。那可能吗?如果是这样如何?

我希望我可以查询为每个CSV字段创建一个header并将其映射到数据库字段(因为CSV将始终以相同的顺序)。

回答

0

我不认为它是一个RBAR问题。如果将文件原样加载到单个临时表中,则可以为每个表运行如下所示的操作: INSERT INTO destTable(col1,col2) SELECT col1,col2 FROM StageTable WHERE col3 ='criteria'

这样,你保持一切基于集。当然,这取决于涉及的记录数量,但逐行处理数据和TSQL通常不太合适。 SSIS比TSQL做得好得多。

+0

这很有道理,但我忘了一点。这些CSV将每天在任何地方从每天10到30个阅读。我们每个CSV有6个桌面,所有内容都是分开的。所以基本上只需创建一个临时表,其中将放置每个CSV(所有字段),然后让查询将这些内容推送到实时表中? –

0

在列例如标签它通过关联数组

ID,名称,颜色 1,JO,红色 2毫安,蓝色 3,J,黄色

得到在一个阵列中的第一行,所以只需通过索引比较循环中的值