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

Jak nakonfiguruji soubor aplikace Excel jako propojený server v SQL Server?

Pro ty, kteří používají SQL SERVER 2012+, můžete použít Microsoft OLEDB 12.0 Provider, který je součástí SQL Server 2012+ a který vám umožňuje používat Excel 2007-2013 xlsx soubory pro adhoc distribuované dotazy nebo jako propojený server. Příklady níže.

Excelový sešit 'Application.xlsx' má 3 listy 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

Pro Ad Hoc dotazy použijte funkci 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$]');

Pro vytvoření propojeného serveru pro formát 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'

Nyní zadejte dotaz na soubor aplikace Excel dvěma způsoby:

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. Jak počítat po sobě jdoucí duplikáty v tabulce?

  2. Jak přimějete PyPy, Django a PostgreSQL ke spolupráci?

  3. Postgres vnořený v případě dotazu

  4. Potíže s nalezením jediného znaku v tabulce SQL