在操作数据库中,我们难免会遇到导入和导出数据库中的数据问题,但有时用SQL语句操作时,就会报各种错误,比如下面这种错误。
错误各种找啊,最终解决,现总结原因如下:
1.未开启Ad Hoc Distributed Queries 服务:
开启方式和关闭方式如下:
1 --启用Ad Hoc Distributed Queries: 2 exec sp_configure 'show advanced options',1 3 reconfigure 4 exec sp_configure 'Ad Hoc Distributed Queries',1 5 reconfigure 6 7 --使用完成后,关闭Ad Hoc Distributed Queries: 8 exec sp_configure 'Ad Hoc Distributed Queries',0 9 reconfigure 10 exec sp_configure 'show advanced options',0 11 reconfigure 12
2.Microsoft.Jet.OLEDB.4.0 引擎设置阻止了导入和导出。
设置方式如下(SQL2005为例子):
SQL Server Management Studio ->服务器对象-->链接服务器-->Microsoft.Jet.OLEDB.4.0-->右键属性-->访问接口选项:全都不选
3.SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher 服务的登录身份设置错误:
设置方式如下:
将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为LocalSystem
4.确保要导入的数据格式正确。
5.确保在导入数据时,Excel表或者其他数据库表没有被其他软件打开。
6.确定你的Office版本;选择合适的SQL语句进行导入和导出。(导入为例)
如果是2003之前的,一般用下面的SQL语句:
1 insert into dbo.data_cldeb(gg,xh,cl,de) 2 select 规格,型号,'铜',铜 from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 3 'Data Source=F:\gongzuo\系列7.xls;Extended Properties=Excel 5.0')...[Sheet1$]
如果Office是2007之后的,一般用下面的SQL语句:
1 insert into dbo.data_cldeb(gg,xh,cl,de) 2 select 规格,型号,'铜',铜 from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 3 'Data Source=F:\gongzuo\系列7.xls;Extended Properties=Excel 8.0')...[Sheet1$]