Excel导入到MSSQL 2005/2008常见的2个错误

今天在把从Filemaker导出的Excel再次导入到MSSQL 2008的时候遇到了2个问题,在此记录一下省的下次再费时间搜索。

第一个报错是:Ad Hoc Distributed Queries未启用的,你可能会收到如下错误信息
中文版

<br/>SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。<br/>

英文版

<br/>SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.<br/>

你可以通过一下SQL语句启用Ad Hoc Distributed Queries:

<br/>exec sp_configure 'show advanced options',1<br/>reconfigure<br/>exec sp_configure 'Ad Hoc Distributed Queries',1<br/>reconfigure<br/>

使用完成后,关闭Ad Hoc Distributed Queries:

<br/>exec sp_configure 'Ad Hoc Distributed Queries',0<br/>reconfigure<br/>exec sp_configure 'show advanced options',0<br/>reconfigure <br/>

第二个报错是字符被截断:A truncation error occurred on the specified object of the specified component.
这种问题大都是因为某一个字段的长度超过了255,而在SQL2008中,MSSQL是通过扫描EXCEL的前8行的各个数据的内容来估计该表各个列的数据的长度的,在前8行中有内容超过255字符的条目的时候自然会被判定为LongText类型从而成功导入,反之在前8行中没有的话,后面的行有超过255的时候就会被截断。

解决的办法就是找到这些字段中显示为“###############”的行,移动到前8行中。

Loading

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据