2011-02-22 12 views
6

मैं कुछ SQL स्क्रिप्ट निष्पादित करने के लिए sqlcmd का उपयोग करने का प्रयास कर रहा हूं।sqlcmd नहीं चलेंगे - क्या यह एक कॉन्फ़िगरेशन समस्या है?

की तरह एक साधारण क्वेरी के साथ एक परीक्षण आदेश का उपयोग करना:

sqlcmd -S HOSTNAME -d MYDATABASE -Q 'SELECT Names FROM Customers' 

sqlcmd सर्वर से कनेक्ट करने का प्रयास करने के लिए प्रकट नहीं होता है के रूप में यह इस संदेश को प्रदर्शित करता है:

Sqlcmd: Error: Connection failure.
SQL Native Client is not installed correctly. To correct this, run SQL Server Setup.

मूल क्लाइंट एसक्यूएल सर्वर सेटअप और संभवतः सही ढंग से भाग के हिस्से के रूप में स्थापित किया गया था। मुझे वास्तव में एसक्यूएलसीएमडी का उपयोग करने की कोशिश कर रहे SQL सर्वर के साथ किसी भी मशीन पर यह संदेश मिलता है, इसलिए यह स्थापना भ्रष्ट होने की बात नहीं है।

दुर्भाग्यवश संदेश वास्तव में मुझे समस्या के बारे में कुछ भी नहीं बताता है, इसलिए मुझे नहीं पता कि वास्तविक समस्या क्या है। मुझे पता है कि SQL मूल क्लाइंट ठीक से काम कर रहा है क्योंकि एक vbscript डेटाबेस के विरुद्ध SQL क्वेरी निष्पादित करने में सक्षम था।

क्या एसक्यूएलसीएमडी का उपयोग करने के लिए कुछ अतिरिक्त कॉन्फ़िगरेशन आवश्यक है?

+0

आप कोड एक्सएमएल या डेटा के नमूने पोस्ट करते हैं तो ** कृपया ** पाठ संपादक में उन पंक्तियों पर प्रकाश डाला और "कोड नमूने पर क्लिक करें: मेरी मशीन पर

पथ वातावरण चर निम्नलिखित प्रविष्टियों शामिल "बटन (' {} ') संपादक टूलबार पर अच्छी तरह से प्रारूपित करने और सिंटैक्स को हाइलाइट करने के लिए! –

+0

यह serverfault.com या superuser.com –

+0

@Jim पर आधारित है जो मानदंडों के आधार पर? http://stackoverflow.com/faq '" कंप्यूटर उत्साही और बिजली उपयोगकर्ता "'? मैं इसे प्रोग्रामर के – RichardTheKiwi

उत्तर

0

I know the SQL Native client is working properly since a vbscript was able to execute SQL queries against the database.

नहीं, आप नहीं करते हैं। आप केवल इतना जानते हैं कि कुछ ग्राहक काम करता है, लेकिन अनिवार्य रूप से SQL मूल क्लाइंट नहीं है।

सभी सड़कों रोम http://www.connectionstrings.com/sql-server-2008 (प्रदाता सूची की जांच करें) की ओर ले जाती हैं, लेकिन एक अवरुद्ध होता है।

बस नियंत्रण कक्ष से एक मरम्मत/संशोधित सेटअप करें, या एक और उदाहरण स्थापित करें (सुनिश्चित करें कि मूल क्लाइंट स्थापित है), फिर इसे फिर से हटा दें।

+0

वैसे उपकरण जो SQL सर्वर के साथ शिप करते हैं जैसे प्रबंधन स्टूडियो SQL मूल क्लाइंट पर निर्भर करता है और ठीक से काम करता है ताकि क्लाइंट स्वयं ही काम करता है। मैंने मूल क्लाइंट को अनइंस्टॉल करने और पुनर्स्थापित करने का प्रयास किया है जिसका कोई प्रभाव नहीं है। – nuit9

+0

@ nuit9 एसएसएमएस वास्तव में एसक्यूएल मूल क्लाइंट का उपयोग नहीं करता है। SQL सर्वर के उदाहरण से कनेक्शन बनाने के लिए यह sqlsrv32.dll ODBC ड्राइवर का उपयोग करता है। इसका सबूत ProcessExplorer का उपयोग करके किया जा सकता है और एसएसएमएस के साथ एक उदाहरण से कनेक्ट करने के बाद दो डीएलएल फाइलों की खोज कर सकता है। –

14

मुझे एक ही त्रुटि थी। बहुत सारी खोज और पुनर्स्थापित करने के बाद, मैंने अपने पैथ को कुछ असंबंधित के लिए चेक किया। सॉफ्टवेयर मैं पर काम करते हैं और अब 2008 एक्सप्रेस R2 MSDE 2005 एक्सप्रेस के माध्यम से चला गया है के रूप में, मेरी पथ बयान इन प्रविष्टियों था:

c:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\

मैं 80 और 90 हटाई गई प्रविष्टियां और त्रुटि प्राप्त बंद कर दिया। मैंने परीक्षण किया और 2005 एक्सप्रेस के इंस्टॉलेशन ने अभी भी बिना किसी समस्या के एसक्यूएलसीएमडी प्रविष्टि का जवाब दिया।

+2

SQL Server 2012 स्थापित करने के बाद मुझे एक ही समस्या थी और जब मैंने पाथ पर्यावरण परिवर्तनीय मान की जांच की तो मुझे पता चला कि SQL सर्वर 2012 (110 नाम का फ़ोल्डर) और SQL सर्वर 2008 (फ़ोल्डर नाम 100) के लिए डुप्लिकेट प्रविष्टियां थीं। इसलिए एसक्यूएलसीएमडी को एसक्यूएल सर्वर 2008 फ़ोल्डर से हमेशा उठाया जा रहा था, भले ही देशी क्लाइंट स्थापित एसक्यूएल सर्वर 2012 का था और मैंने एसक्यूएल सर्वर 2008 को अनइंस्टॉल किया था। इसलिए त्रुटि। मैंने "100" फ़ोल्डर वाली प्रविष्टियों को हटा दिया और यह सब ठीक था। असल में, एमएस को एसक्यूएल सर्वर अनइंस्टॉलेशन के दौरान सफाई का बेहतर काम करने की ज़रूरत है! –

+1

धन्यवाद! एसक्यूएल सर्वर 2012 स्थापित करने के बाद मेरे पास एक ही चीज़ थी। मैंने "100" प्रविष्टि को हटा दिया और अकेले "110" प्रविष्टि छोड़ी। अब यह काम करता है :) – user952342

3

sqlcmd आदेश चलाते समय मुझे यह त्रुटि मिली। इस समस्या के समाधान के लिए, मैं PATH वातावरण चर के अनावश्यक भागों को हटा दिया, और निम्न डाला:

C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ 

इस पथ एसक्यूएल सर्वर के लिए 2012

+0

"अनावश्यक भागों" को परिभाषित करें। पर्यावरण चर के साथ मेसिंग खतरनाक है, खासकर पाथ। –

1

मैं भी एमएस एसक्यूएल सर्वर के साथ इस त्रुटि हो रही थी 2014

Sqlcmd: Error: Connection failure. SQL Native Client is not installed correctly. To correct this, run SQL Server Setup.

पहले पुष्टि करें कि एसक्यूएल सर्वर मूल क्लाइंट स्थापित किया गया है। जैसा कि MSDN पर निर्दिष्ट है, bcp.exe और SQLCMD.exe फ़ाइलें नीचे दी गई निर्देशिका में स्थित होनी चाहिए।

<Install Directory>\Client SDK\ODBC\110\Tools\Binn 

फ़ाइलें नहीं हैं, तो आप डाउनलोड करने और the Microsoft Download center से ग्राहक स्थापित करें, या तो ENU \ 86 \ sqlncli.msi या ENU \ 64 \ sqlncli का उपयोग कर सकते हैं।एमएसआईएमएसएसक्यूएल 2014 2012 क्लाइंट

एक बार ऐसा करने के बाद, आप बिना किसी समस्या के SQLCMD का उपयोग करने में सक्षम होना चाहिए।

C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn 
C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\ 
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\ 
C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ 
संबंधित मुद्दे