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

Как да конфигурирам Excel файл като свързан сървър в SQL Server?

За тези, които използват SQL SERVER 2012+, можете да използвате Microsoft OLEDB 12.0 Provider, който се предлага с SQL Server 2012+ и който ви позволява да използвате Excel 2007-2013 xlsx файлове за adhoc разпределени заявки или като свързан сървър. Примери по-долу.

Работната книга на Excel „Application.xlsx“ има 3 работни листа Application,Device,UserFirst Activate Ad Hoc Queries on the Server.

USE MSDB
GO
sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OverRide
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE WITH OverRide
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

За ad hoc заявки използвайте функцията OPENROWSET.

SELECT * FROM 
OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel   8.0;Database=C:\Users\Administrator\Desktop\Application.xlsx;HDR=YES', 'SELECT * FROM [Application$]');

SELECT * FROM 
OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel   8.0;Database=C:\Users\Administrator\Desktop\Application.xlsx;HDR=YES', 'SELECT * FROM [Device$]');

SELECT * FROM 
OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel  8.0;Database=C:\Users\Administrator\Desktop\Application.xlsx;HDR=YES', 'SELECT * FROM [User$]');

За създаване на свързан сървър за формат на Excel 2007-2013:

USE MSDB
GO
EXEC sp_addLinkedServer
@server= 'XLSX_MATRIX',
@srvproduct = 'ACE 12.0',
@provider = 'Microsoft.ACE.OLEDB.12.0',
@datasrc = 'C:\Users\Administrator\Desktop\Application.xlsx',
@provstr = 'Excel 12.0; HDR=Yes'

Сега направете запитване към вашия excel файл по два начина:

SELECT * FROM OPENQUERY (XLSX_MATRIX, 'Select * from [Application$]')
SELECT * FROM OPENQUERY (XLSX_MATRIX, 'Select * from [Device$]')
SELECT * FROM OPENQUERY (XLSX_MATRIX, 'Select * from [User$]')

SELECT * FROM XLSX_MATRIX...[Application$]
SELECT * FROM XLSX_MATRIX...[Device$]
SELECT * FROM XLSX_MATRIX...[User$]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пейджинг на базата на отместване/извличане (внедряване) в EntityFramework (с помощта на LINQ) за SQL Server 2008

  2. Отпадане на неименувани ограничения

  3. SQL Server 2008:как да дам привилегии на потребителско име?

  4. Как да възстановя изтритите редове от таблицата на SQL сървъра?

  5. sql родителско дъщерно дърво с ред на сортиране