2015-08-04 4 views
0

Я пытаюсь загрузить массив Excel в SQL Server. Я пробовал много усилий, но не получил правильного результата. Я выполнил следующий запрос, но получил ошибку. Пожалуйста, постарайся помочь мне, я застрял на этом. У меня есть SQL Server 2012 и Excel 2013 установленМассовый импорт файла Excel в SQL Server

SELECT * 
INTO temptable 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=D:\File.xls;IMEX=1', 
       'SELECT * FROM [Data$]') 

Ошибка:

Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

+0

Это одноразовый импорт или что-то, что вы захотите запустить снова и снова? – sarin

+0

Вы можете попробовать его с помощью встроенного мастера. Вы также можете попробовать использовать CSV-файл. Есть ли причина, по которой вам нужен файл Excel неявно? – Joeri

+0

@sarin: Да, я хочу запустить его снова с помощью хранимой процедуры –

ответ

0

Я думаю, что это проблема офисных версий просто попробуйте этот код

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
         'Excel 8.0;Database=C:\Export.xls;', 
         'SELECT id_sale FROM [ExportSheet$]') 

More help

0

Вот примеры для версий Excel 97-2010, которые должны были покрыть вас:

--Excel 2007-2010 
SELECT * INTO #temptable 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0 Xml;HDR=YES;Database=D:\File.xls', 
    'SELECT * FROM [ExcelTabName$]'); -- Replace ExcelTabName with actual tab name 

--Excel 97-2003 
SELECT * INTO #temptable 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;HDR=YES;Database=D:\File.xls', 
    'select * from [ExcelTabName$]'); -- Replace ExcelTabName with actual tab name 
Смежные вопросы