现在的位置: 首页 > 综合 > 正文

关于从Excel导入到SQL Server 2000里表头及数字丢失的解决办法

2013年10月25日 ⁄ 综合 ⁄ 共 664字 ⁄ 字号 评论关闭
导入excel数据其实是简单,依旧可以利用导入导出向导(现在不懂得编程,以后再补充),就像foxpro表格一样。而且它不像foxpro数据库(表格)一样需要建立数据源,只要在向导提示导入数据的“源”时指向.xls文件就可以,但由于excel机制的简单,容易出一些问题。

1.倘若SQL Server表中有一列是标识字段(也就是自动编号),是在excel记录导入后自动生成编号,你需要在导入时钩掉“启用标识插入”属性,或在列映射的设置中把目的表 “自动编号”那列对应源表的字段设为“忽略”。

2.如果excel表格中有一列是既有数字又有文本的,在导入SQL Server表格时会发生问题。有可能excel中为文本的那些记录在SQL Server中变成了null值。这是因为它把所有的记录理解为数值,(尽管我们并没有在excel中这样设置),而遇到文本时判断不是数值,便给出null值。

解决方法如下:(可能有其他的,但目前只发现此种有效。)

n 将此导换的DTS包(这需要事先保存、或自行新建)打开

n 在编辑器里右键单击空白处,选择“脱接属性”命令。

n 依次展开“连接”——excel的那个连接——>“OLE DB属性“,找到“Extended Properties”属性。

n 将右边的“Value”属性的值改为“Excel=8.0;HDR=YES;IMEX=1”

n 保存,关闭。

而后执行这个DTS包,就可以得到正确的结果了。

3.在列映射的设置时,SQL Server已经很方便地提供了功能,你可以为源和目的的对应列一一设置。所以各列对应的名称并不需要相同。 

 

抱歉!评论已关闭.