Zoals Philip heeft gezegd... controleer eerst de uitvoering van xp_cmdshell. Als het niet actief is vanwege een toestemmingsprobleem, configureer dan eerst deze optie opnieuw door
. uit te voerenSP_CONFIGURE 'XP_CMDSHELL',1
GO
RECONFIGURE
voer daarna de volgende opdracht uit om gekoppelde servermachtigingen voor InProcess-mogelijkheden voor ACE-stuurprogramma in te schakelen:
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
Voer nu deze reeks opdrachten uit:
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
als er een fout is opgetreden, voert u elke opdracht afzonderlijk uit. En voer ten slotte importeer al uw Excel-gegevens naar SQL-server uit door de onderstaande opdracht uit te voeren:
SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES',
'SELECT * FROM [sheetName$]')
Onthoud dat je in het geval van xls Jet Driver moet gebruiken in plaats van ACE. En ook de TargetTableName mag niet bestaan voordat deze query wordt uitgevoerd.Veel plezier met coderen :)