У меня 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.У вас есть какой-нибудь способ решить эту проблему, пожалуйста, помогите.