sql >> Databáze >  >> RDS >> Sqlserver

Excel na SQL Server s Microsoft.ACE.OLEDB.12.0

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í :)



  1. Jak Acosh() funguje v PostgreSQL

  2. Jak mohu spočítat online uživatele ve své aplikaci?

  3. ORA-00942:tabulka nebo pohled neexistuje se Spring JDBC Template v Spring Boot

  4. Autoinkrementační sloupec MySQL poskočí o 10 – proč?