जो लोग SQL सर्वर 2012+ का उपयोग कर रहे हैं, उनके लिए आप Microsoft OLEDB 12.0 प्रदाता का उपयोग कर सकते हैं जो SQL Server 2012+ के साथ आता है और जो आपको तदर्थ वितरित प्रश्नों के लिए या लिंक किए गए सर्वर के रूप में Excel 2007-2013 xlsx फ़ाइलों का उपयोग करने की अनुमति देता है। नीचे उदाहरण।
Excel कार्यपुस्तिका 'Application.xlsx' में 3 कार्यपत्रक हैं अनुप्रयोग, उपकरण, UserFirst सर्वर पर तदर्थ प्रश्नों को सक्रिय करें।
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
तदर्थ प्रश्नों के लिए 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$]');
एक्सेल 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'
अब, अपनी एक्सेल फाइल को दो तरह से क्वेरी करें:
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$]