sql >> Database >  >> RDS >> Sqlserver

Excel in SQL Server met Microsoft.ACE.OLEDB.12.0

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 voeren
SP_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 :)



  1. FlySpeed ​​SQL-query verbinden met Salesforce.com

  2. MySQL-volgorde op twee waarden

  3. Doe mee met meerdere voorwaarden

  4. Parameters doorgeven aan Oracle SQL-bestand vanuit batchbestand