Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2012 OPENROWSET त्रुटि का उपयोग करके एक्सेस 2007 डेटा को क्वेरी कर रहा है

अंत में, SQL सर्वर को एक्सेस डेटाबेस से "बात" करने के कई असफल प्रयासों के बाद - या तो SSMS में "लिंक्ड सर्वर" के रूप में या OPENROWSET() के माध्यम से टी-एसक्यूएल में - मुझे यह ब्लॉग पोस्ट मिला जिसमें निम्नलिखित तीन (3) सुझाव दिए गए हैं।

ट्वीक #1:OLE DB प्रदाता सेटिंग

एसीई (या जेट) के लिए ओएलई डीबी प्रदाता के पास "डायनामिक पैरामीटर" और "इनप्रोसेस की अनुमति दें" विकल्प सक्षम होना चाहिए। SSMS में,

. खोलें

सर्वर ऑब्जेक्ट> लिंक किए गए सर्वर> प्रदाता

शाखा, "Microsoft.ACE.OLEDB.12.0" (या "Microsoft.Jet.OLEDB.4.0") पर राइट-क्लिक करें, "गुण" चुनें, और सुनिश्चित करें कि वे विकल्प चुने गए हैं:

ट्वीक #2:अस्थायी फ़ोल्डर अनुमतियां

यह वही है जो मुझे स्टंप कर रहा था।

स्पष्ट रूप से SQL सर्वर को किसी एक्सेस डेटाबेस के विरुद्ध ओएलई डीबी क्वेरी चलाते समय अस्थायी फ़ाइल में जानकारी लिखने की आवश्यकता होती है। क्योंकि SQL सर्वर एक सेवा के रूप में चल रहा है, यह उस खाते के %TEMP% फ़ोल्डर का उपयोग करता है जिसके अंतर्गत सेवा चल रही है।

यदि SQL सर्वर सेवा अंतर्निहित "नेटवर्क सेवा" खाते के अंतर्गत चल रही है तो अस्थायी फ़ोल्डर है

%SystemRoot%\ServiceProfiles\NetworkService\AppData\Local\Temp

और अगर यह बिल्ट-इन "लोकल सर्विस" खाते के तहत चल रहा है तो अस्थायी फ़ोल्डर है

%SystemRoot%\ServiceProfiles\LocalService\AppData\Local\Temp

मेरी समस्या यह थी कि SSMS my . के अंतर्गत चल रहा था खाता (नेटवर्क सेवा नहीं) इसलिए मेरे पास केवल Temp फ़ोल्डर तक पढ़ने की पहुंच थी

एक बार जब मैंने स्वयं को उस फ़ोल्डर पर अनुमतियाँ संशोधित करें

और OPENROWSET प्रश्नों को सक्षम किया जैसा कि यहां एक अन्य प्रश्न में प्रलेखित है, अर्थात् ...

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

... मेरी क्वेरी ने ठीक काम किया:

ट्वीक #3:मेमोरी_टू_रिजर्व

हालाँकि मुझे अपने मामले में इसका उपयोग करने की आवश्यकता नहीं थी, उपरोक्त ब्लॉग यह भी दावा करता है कि SQL सर्वर सेवा के लिए "-g memory_to_reserve" स्टार्टअप पैरामीटर को समायोजित करने से भी इसी तरह की त्रुटियों से बचने में मदद मिल सकती है। ऐसा करने के लिए:

  • SQL सर्वर कॉन्फ़िगरेशन प्रबंधक लॉन्च करें
  • SQL सर्वर सेवा ("SQL सर्वर सेवाएँ" टैब) पर राइट-क्लिक करें और "गुण" चुनें
  • "उन्नत" टैब पर, -g512; . को प्रीपेन्ड करें "स्टार्टअप पैरामीटर्स" सेटिंग में
  • SQL सर्वर सेवा को पुनरारंभ करें

"memory_to_reserve" सेटिंग के बारे में अधिक जानकारी के लिए यहां MSDN आलेख देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल का उपयोग करके उप-स्ट्रिंग की अंतिम घटना की अनुक्रमणिका पाएं

  2. ALTER TABLE कथन SQL सर्वर में FOREIGN KEY बाधा के साथ विरोध करता है - SQL Sever / TSQL ट्यूटोरियल पार्ट 69

  3. आप एक संग्रहित प्रो में वापस आने वाले डेटासेट की टेबल्स का नाम कैसे दे सकते हैं?

  4. SQL सर्वर 2016:एक तालिका बनाएँ

  5. SQL सर्वर (T-SQL) में समर्थित समय क्षेत्रों की सूची प्राप्त करें