2014-11-19 17 views
1

Я выполнения этой функции OpenRowset:OpenRowset недостаточность функции

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx;HDR=YES', 
    'SELECT * FROM [Sheet1$]') 

Но он дал мне следующую ошибку

OLE DB провайдер "Microsoft.ACE.OLEDB.12.0" для связанного сервера " (null) «возвращенное сообщение» Механизм базы данных Microsoft Access не смог найти объект «Sheet1 $». Убедитесь, что объект существует, и вы правильно указали его имя и имя пути. Если «Sheet1 $» не является локальным объектом, проверьте сетевое подключение или обратитесь к администратору сервера. ".
Msg 7350, Level 16, State 2, Line 1
Невозможно получить информацию о столбцах от поставщика OLE DB «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(null)».

Я уже установили Ad Hoc Distributed Queries в 1 и я установил Microsoft ACE, а также выполнил эту строку кода:

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 
GO 

Но это еще не будет работать.

+0

Является ли путь «C: \ Users \ JC ...» на том же компьютере, что и SQL Server? Доступна ли учетная запись службы SQL Server? –

ответ

1

Вы сообщение об ошибке состоит из двух частей:

OLE DB провайдер «Microsoft.ACE.OLEDB.12.0» для связанного сервера «(неопределенные)» возвращается сообщение «Ядро базы данных Microsoft Access не удалось найти объект «Sheet1 $». Убедитесь, что объект существует, и вы правильно указали его имя и имя пути. Если «Sheet1 $» не является локальным объектом, проверьте сетевое подключение или обратитесь к администратору сервера ».

И

Msg 7350, Level 16, состояние 2, строка 1 не удается получить информацию о столбце от поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера «(нуль) ».

То, что вторая часть из-за ошибки в первой части, так что ваша основная ошибка в первой части, которая говорит нам:

Ядро базы данных Microsoft Access не удалось найти объект «Лист1 $ ». Убедитесь, что объект существует, и вы правильно назовете его имя и имя пути. Если «Sheet1 $» не является локальным объектом, проверьте сетевое подключение или обратитесь к администратору сервера.

Некоторые общие причины и решения таковы:

  • Путь не существует: файла или путь C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx не существует;

    Примечания: SQL Server C:\ ссылается на \\Server\C$, поэтому если вы используете SSMS и вы регистрируете Server и подключается к нему, ваш путь не существует.
  • разрешения файла отказано: файла или путь C:\Users\JCPABALAN\Desktop\Data Migration\ListOfDiscards.xlsx имеет уровень безопасности, который вы можете получить доступ к их учетной записи службы SQL Server, Вы можете предоставить доступ к учетной записи службы SQL Server.

  • Имя листа недействительно: Рабочего листа Sheet1 не является допустимым имя листа в ваших рабочей книге листов, Вы, возможно, изменить свое название.

+0

Благодарим за ответ @ shA.t – user3709209

 Смежные вопросы

  • Нет связанных вопросов^_^