在使用Excel整理数据导入MSSQL2000 时,有时候回出现如下错误
"作为源列 xxx("xxxx")的数据对于所指定的缓冲区来讲太大。"
以上错误的原因是:将excel表的数据导入数据库的时候,Sql server处理数据流程是先创建目标表,再把excel数据写入缓冲区,然后再把缓冲区数据写入目标表。问题就在创建目标表和写入缓冲区,sql server会根据"TypeGuessRows"选项的值所代表的行数判断excel表的内容,确定数据类型(默认是根据前8行的内容判断确定数据类型),来写入缓冲区和创建目标表。
因此有2种解决办法:
1. 将发生错误的源列 xxx 数据 剪切后,粘贴到excel表前8行,这样就会根据错误行的内容确定数据类型。
2.修改服务器的注册表: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel 下双击右边的"TypeGuessRows"选项,将"数值数据"改成0,这样就会对每行的内容进行判断,不过这样做会影响性能。