sql >> Database teknologi >  >> RDS >> Sqlserver

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

Som Philip har sagt ... tjek først udførelsen af ​​xp_cmdshell. Hvis den ikke kører på grund af tilladelsesproblem, skal du først omkonfigurere denne indstilling ved at køre

SP_CONFIGURE 'XP_CMDSHELL',1
GO             
RECONFIGURE

efter dette kør følgende kommando for at aktivere linkede servertilladelser for InProcess-funktioner for ACE-driver:

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 denne række af kommandoer :

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

hvis der opstår en fejl, så kør hver kommando separat. Og kør endelig importer alle dine excel-data til SQL-serveren ved at køre nedenstående kommando:

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

Husk at i tilfælde af xls skal du bruge Jet Driver i stedet for ACE. Og også TargetTableName må ikke eksistere før denne forespørgsel køres. God fornøjelse med kodningen :)



  1. Konverter rækker til kolonner oracle SQL

  2. MySQL Sorter efter 2 kolonner

  3. Hvordan arbejder jeg med høj præcision decimaler i PHP

  4. Sådan indstilles timeout for en lagret procedure i SQL Server