Импорт файла Excel в SQL Server с использованием T-SQL - PullRequest
0 голосов
/ 29 ноября 2018

У меня SQL Server 2012 и MS Office 2013. Я использую команду Openrowset:

sp_configure 'show advanced options', 1;  
RECONFIGURE;
GO 
sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO  

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

SELECT * INTO My_Table FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                        'Excel 12.0;Database=D:\SQL\B0.xlsx',
                        'SELECT * FROM [Sheet1$]')

Если я работаю от имени администратора, код работает нормально.Но если я использую своего пользователя, я получаю эту ошибку:

Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" вернул сообщение "Unspecified error".

Сообщение 7303, уровень 16, состояние 1, строка 1
Невозможно инициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(ноль)".

Моя цель - импортировать файл Excel с более чем 300 000 строк.Я использую Мастер импорта, но он работает только с 65 000 строк, поэтому мне нужно использовать T-SQL, но я получаю эту ошибку.Возможно, у моего пользователя нет прав на использование кода для импорта в Excel с помощью T-SQL.У вас есть какой-нибудь способ решить эту проблему, пожалуйста, помогите.

...