情况描述:
1.Excel包含了太多数据,后台SQL设计时根据Excel数据进行归类拆分了多个表,不然会有很多重复数据。
前台也为了方便导入对Excel拆分了多个sheet,对应后台的相应表格。
2.每个MSSQL表都有自增流水号栏位,而且有的表的自增流水号又作为别的表的外键。
3.这样会造成插入到SQL后还要返回自增流水号作为别的表的外键再进行后续表的插入。
比如将sheet1的数据导入后,返回多个自增流水号回填作为sheet2一个列的值再导入MSSQL中。
我能想到的问题是:
1.导入sheet的过程产生错误,没能将sheet中的数据都生成流水号怎么办?
2.生成流水号了,但是再回填如excel的sheet中时出现问题,造成后续数据不能再进行操作,该怎么处理?
想请问各位有没有好的办法解决这个问题?
有代码就更好了。
思路:
1、记录中间过程标志到特定的表,又如1代表从XX到YY成功,2代表YY到ZZ成功,4代表ZZ到..成功。
2、使用事务
感谢大侠。
导入为DataTable,验证处理之后再导入数据库,加上事务,保证一致性。
感谢大侠。
2.每个MSSQL表都有自增流水号栏位,而且有的表的自增流水号又作为别的表的外键。
可以将 MSSQL表的自增流水号关掉,采用excel 某列作为表的流水号,如下图
勾选: Enable identity insert , 不启用表的自增ID