首页 新闻 会员 周边 捐助

如何将Excel中的数据导入到SQL Server2008拆分的表中

0
悬赏园豆:20 [待解决问题]

情况描述:

1.Excel包含了太多数据,后台SQL设计时根据Excel数据进行归类拆分了多个表,不然会有很多重复数据。

前台也为了方便导入对Excel拆分了多个sheet,对应后台的相应表格。

2.每个MSSQL表都有自增流水号栏位,而且有的表的自增流水号又作为别的表的外键。

3.这样会造成插入到SQL后还要返回自增流水号作为别的表的外键再进行后续表的插入。

比如将sheet1的数据导入后,返回多个自增流水号回填作为sheet2一个列的值再导入MSSQL中。

 

我能想到的问题是:

1.导入sheet的过程产生错误,没能将sheet中的数据都生成流水号怎么办?

2.生成流水号了,但是再回填如excel的sheet中时出现问题,造成后续数据不能再进行操作,该怎么处理?

 

想请问各位有没有好的办法解决这个问题?

有代码就更好了。

Edielu的主页 Edielu | 初学一级 | 园豆:182
提问于:2013-11-20 16:29
< >
分享
所有回答(3)
0

思路:
1、记录中间过程标志到特定的表,又如1代表从XX到YY成功,2代表YY到ZZ成功,4代表ZZ到..成功。
2、使用事务

邀月 | 园豆:25475 (高人七级) | 2013-11-21 10:33

感谢大侠。

支持(0) 反对(0) Edielu | 园豆:182 (初学一级) | 2013-11-21 14:13
0

导入为DataTable,验证处理之后再导入数据库,加上事务,保证一致性。

幻天芒 | 园豆:37207 (高人七级) | 2013-11-21 13:28

感谢大侠。

支持(0) 反对(0) Edielu | 园豆:182 (初学一级) | 2013-11-21 14:13
0

2.每个MSSQL表都有自增流水号栏位,而且有的表的自增流水号又作为别的表的外键。

    可以将 MSSQL表的自增流水号关掉,采用excel 某列作为表的流水号,如下图

勾选: Enable identity insert , 不启用表的自增ID

shzy2012 | 园豆:224 (菜鸟二级) | 2014-03-04 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册