Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Excel в SQL Server с Microsoft.ACE.OLEDB.12.0

Както каза Филип...първо проверете изпълнението на xp_cmdshell. Ако не работи поради проблем с разрешението, тогава първо преконфигурирайте тази опция, като стартирате

SP_CONFIGURE 'XP_CMDSHELL',1
GO             
RECONFIGURE

след това изпълнете следната команда, за да активирате свързани сървърни разрешения за InProcess възможности за 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

Сега изпълнете тази поредица от команди:

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

ако възникне грешка, изпълнете всяка команда отделно. И накрая изпълнете импортиране на всички ваши данни в Excel към SQL сървър, като изпълните посочената по-долу команда:

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

Не забравяйте, че в случай на xls трябва да използвате Jet Driver вместо ACE. Освен това TargetTableName не трябва да съществува преди изпълнението на тази заявка. Приятно кодиране :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да експортирате данни от електронна таблица на Excel в таблица на Sql Server 2008

  2. JPA съставен първичен ключ

  3. Използвайте set в оператор case в SQL Server

  4. Нормален/бърз метод за предаване на списъци с променливи параметри към съхранена процедура на SqlServer2008

  5. Да се ​​изтрие ли един запис от Entity Framework?