日期:2014-05-18  浏览次数:20535 次

从excel导入到sqlserver中出现如下问题 请帮忙
各位老大:


                    小弟在   从excel导入到sqlserver中出现如下问题   请帮忙:
我写的sql是:insert   into   tbl_IItest   (   practitionerid,pracid)
SELECT     practitionerid,pracid
FROM   OpenDataSource(   'Microsoft.Jet.OLEDB.4.0 ',
    'Data   Source= "C:\DuplicateIDCorrection.xls ";Extended   properties=Excel   8.0;Persist   Security   Info=False ')...Sheet1$

出现的提示是:Server:   Msg   7415,   Level   16,   State   1,   Line   1
Ad   hoc   access   to   OLE   DB   provider   'Microsoft.Jet.OLEDB.4.0 '   has   been   denied.   You   must   access   this   provider   through   a   linked   server.

请问应该如何解决谢谢

------解决方案--------------------
try:
创建一个名为 ExcelSource 的链接服务器,定义为 Microsoft Excel 电子表格 DistExcl.xls,然后创建一个映射以允许 SQL Server 登录 sa 使用 Excel 登录 Admin 连接到 ExcelSource,并且没有密码。

EXEC sp_addlinkedserver 'ExcelSource ',
'Jet 4.0 ',
'Microsoft.Jet.OLEDB.4.0 ',
'c:\MyData\DistExcl.xls ',
NULL,
'Excel 5.0 '
GO
EXEC sp_addlinkedsrvlogin 'ExcelSource ', 'false ', 'sa ', 'Admin ', NULL

--如果要查询其它机器的EXCEL文件
--将这里 'c:\MyData\DistExcl.xls '改为你本机共享出来的网络路径:例如\\T123\Inbox\DistExcl.xls

--返回在本地服务器上定义的链接服务列表
exec sp_linkedservers

--以后不再使用时删除链接服务器
exec sp_dropserver 'ExcelSource ', 'droplogins '
go