Jak řekl Philip...nejprve zkontrolujte provedení xp_cmdshell. Pokud neběží kvůli problému s oprávněním, nejprve tuto možnost překonfigurujte spuštěním
SP_CONFIGURE 'XP_CMDSHELL',1
GO
RECONFIGURE
po tomto spuštění následujícího příkazu povolte oprávnění připojeného serveru pro funkce InProcess pro ovladač 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
Nyní spusťte tuto sérii příkazů:
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
pokud dojde k chybě, spusťte každý příkaz samostatně. A nakonec spusťte import všech vašich excelových dat na SQL server spuštěním níže uvedeného příkazu:
SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES',
'SELECT * FROM [sheetName$]')
Pamatujte, že v případě xls musíte místo ACE použít Jet Driver. A také název TargetTableName nesmí existovat před spuštěním tohoto dotazu. Veselé kódování :)