जैसा कि फिलिप ने कहा है...पहले xp_cmdshell के निष्पादन की जांच करें। यदि अनुमति की समस्या के कारण यह नहीं चल रहा है तो पहले इस विकल्प को चलाकर पुन:कॉन्फ़िगर करें
SP_CONFIGURE 'XP_CMDSHELL',1
GO
RECONFIGURE
इसके बाद एसीई ड्राइवर के लिए इनप्रोसेस क्षमताओं के लिए लिंक किए गए सर्वर अनुमतियों को सक्षम करने के लिए निम्न आदेश चलाएं:
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
अगर त्रुटि आई तो प्रत्येक कमांड को अलग से चलाएं। और अंत में नीचे दिए गए कमांड को चलाकर अपने सभी एक्सेल डेटा को SQL सर्वर पर इंपोर्ट करें:
SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES',
'SELECT * FROM [sheetName$]')
याद रखें कि xls के मामले में आपको ACE के बजाय Jet Driver का उपयोग करना होगा। और इस क्वेरी को चलाने से पहले टारगेटटेबलनाम भी मौजूद नहीं होना चाहिए। हैप्पी कोडिंग :)