sql >> Databasteknik >  >> RDS >> Sqlserver

Excel till SQL Server med Microsoft.ACE.OLEDB.12.0

Som Philip har sagt... kolla först körningen av xp_cmdshell. Om det inte körs på grund av behörighetsproblem, konfigurera först om det här alternativet genom att köra

SP_CONFIGURE 'XP_CMDSHELL',1
GO             
RECONFIGURE

efter detta kör följande kommando för att aktivera länkade serverbehörigheter för InProcess-funktioner för ACE-drivrutinen:

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

Kör nu denna serie av kommandon :

sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE

Om ett fel uppstår kör du varje kommando separat. Och slutligen kör importera all din Excel-data till SQL-servern genom att köra kommandot nedan :

SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                         'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES',
                         'SELECT * FROM [sheetName$]')

Kom ihåg att i fallet med xls måste du använda Jet Driver istället för ACE. Och TargetTableName får inte existera innan den här frågan körs. Lycka till med kodningen :)



  1. Hur hämtar man radräkning i PHP i Mysql Database?

  2. mysql anpassad sortering

  3. Hur kör man en MYSQL-fråga på en fördefinierad fast tid?

  4. JSON_ARRAYAGG() Funktion i Oracle