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