Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak skonfigurować plik Excel jako serwer połączony w programie SQL Server?

Dla tych, którzy korzystają z SQL SERVER 2012+, można użyć dostawcy Microsoft OLEDB 12.0, który jest dostarczany z SQL Server 2012+ i który umożliwia używanie plików xlsx programu Excel 2007-2013 do zapytań rozproszonych adhoc lub jako serwera połączonego. Przykłady poniżej.

Skoroszyt programu Excel „Application.xlsx” zawiera 3 arkusze robocze Aplikacja, Urządzenie, Użytkownik Najpierw Aktywuj zapytania ad hoc na serwerze.

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

W przypadku zapytań ad hoc użyj funkcji 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$]');

Aby utworzyć połączony serwer w formacie 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'

Teraz zapytaj o plik Excela na dwa sposoby:

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. Jak działa funkcja konwersji SQL podczas konwertowania daty i godziny na zmiennoprzecinkową?

  2. wybierz jeden wiersz na identyfikator

  3. Jak włączyć uprawnienia zbiorcze w SQL Server

  4. Jak obracać się dynamicznie z datą jako kolumną

  5. Jak uzyskać Distinct Records z tabeli w SQL Server - SQL Server / TSQL Tutorial 112