Както каза Филип...първо проверете изпълнението на xp_cmdshell. Ако не работи поради проблем с разрешението, тогава първо преконфигурирайте тази опция, като стартирате
SP_CONFIGURE 'XP_CMDSHELL',1
GO
RECONFIGURE
след това изпълнете следната команда, за да активирате свързани сървърни разрешения за InProcess възможности за ACE драйвер:
USE [master]
GO
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
Сега изпълнете тази поредица от команди:
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
ако възникне грешка, изпълнете всяка команда отделно. И накрая изпълнете импортиране на всички ваши данни в Excel към SQL сървър, като изпълните посочената по-долу команда:
SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES',
'SELECT * FROM [sheetName$]')
Не забравяйте, че в случай на xls трябва да използвате Jet Driver вместо ACE. Освен това TargetTableName не трябва да съществува преди изпълнението на тази заявка. Приятно кодиране :)