那是由于导出的系统默认的长度超过了你sql server定义的长度,我之前使用excel先导入access再导入sql server,或者可以用ssis先定义好每列的长度导入也可以。
修改服务器的注册表:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/40/Engines/Excel
下双击右边的"TypeGuessRows"选项,将"数值数据"改成0。原因是:将excel表的数据导入数据库的时候,Jet引擎根据"TypeGuessRows"选项的值所代表的行数判断内容的数据类型,默认是根据前8
行的内容判断数据类型,修改成0后,它会对每行的内容进行判断,不过这样做会影响性能。
有几种原因,第一:数据库表对应列和Excel表格的列没有完全对应
第二:Excel表格含有特殊格式等,导致导入时无法导入格式产生错误。
第三:数据库导入导出功能缺陷(此情况一般不会出现)
排除原因,找一个能够导入的表格,使用格式刷将该表格式复制到需要导入的Excel表格。
查找数据库和Excel看看表是否对应。建议直接导入数据到数据库的新表。默认导入的表名为Excel表格名Sheet1$。然后再将数据复制到新表(此方法好处是导入时不需要考虑 Excel和数据库表列差别)。
如果还不行,可以私信将Excel发给我,帮你导入尝试找到具体原因。
ADDITIONAL INFORMATION:
The 'MicrosoftACEOLEDB120' provider is not registered on the local machine (SystemData)
SQL Server 导入和导出向导
sql server 2017 *** 作无法完成。未在本地计算机上注册“MicrosoftACEOLEDB120”提供程序。 (SystemData)
Import Data如果导入excel失败,可能是没有安装相关的office组件。
有一些可以直接搜索相关的组件,安装就ok,但是有的电脑就不行,或者暂时找不到相关的组件。我们可以变通来实现。主要就是导出为csv,或者用access中转来实现导入数据。
1可以尝试把excel数据导出为csv
然后使用Import Flate File导入csv
导入成功后,会自动导入一张新表中。这样可以直接使用sql进行 *** 作了。
如果遇到csv不能正常识别数据。可以尝试在最前边增加id列。
2打开access,新建一个空白的数据库
导入excel。
然后在access中导出到数据库,使用odbc
3打开access,新建一个空白的数据库
导入excel。
然后在sql server中导入access
注意:使用的是sql server 2017,office 2016电脑os是win10,如果版本差异,可能需要调整。但是这3个思路,可以借鉴
原因:应该是没有安装SQL Server Integration Service(SSIS)
解决方案:重新安装你的SQL安装程序,在选择组件的时候加上这个
这个问题百度问问上出现了好多次了,建议下次先去看看
以上就是关于SQL server 导入excel错误全部的内容,包括:SQL server 导入excel错误、将MSSQL2000导入Excel时出错、向sql server2005中导入Excel表时总是出错,Excel表中的数据无法复制到目标数据库中,不知如何解决。急!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)