स्क्रिप्ट निष्पादित नहीं कर सकता: प्रोग्राम के निष्पादन को जारी रखने के लिए अपर्याप्त मेमोरी


85

मेरे पास 123MB sql फ़ाइल है जिसे मुझे अपने स्थानीय पीसी में निष्पादित करने की आवश्यकता है। लेकिन मुझे मिल रहा है

Cannot execute script: Insufficient memory to continue the execution of the program

यहां छवि विवरण दर्ज करें

इस समस्या को कैसे हल करें?


@marc_s जब मैं Ctlr + E पर क्लिक करता हूं तो तुरंत यह त्रुटि दिखाई देती है
user960567

जवाबों:


123

कमांड-लाइन टूल SQLCMD का उपयोग करें जो मेमोरी पर बहुत अधिक दुबला है। यह उतना ही सरल है:

SQLCMD -d <database-name> -i filename.sql

आपको अपने SQL सर्वर इंस्टेंस तक पहुँचने के लिए या डेटाबेस तक पहुँचने के लिए वैध क्रेडेंशियल्स की आवश्यकता होती है

यहां से ले गए ।


23
पूर्ण क्रेडेंशियल्स के साथ, db और सर्वर को निर्दिष्ट करते हुए: sqlcmd -S <your-SERVER> -U <your-USER> -P <your-PASSWORD> -d <your-DATABASE> -i <अपने SQL-FILE-PATH.sql >
a4bike

1
मुझे यह मुद्दा मिलता है: "INSERT बयान में पंक्ति मूल्य अभिव्यक्तियों की अधिकतम संख्या 1000 पंक्ति मानों से अधिक है।"
क्रिश्चियन फ्रेड

3
जोड़ने -eविश्वसनीय कनेक्शन के लिए
smurtagh

33

यह आपकी मदद कर सकता है! कृपया नीचे दिए गए चरणों को देखें।

sqlcmd -S सर्वर-नाम -d डेटाबेस-नाम -i script.sql

  • Cmd.exe को प्रशासक के रूप में खोलें।
  • दस्तावेज़ निर्देशिका बनाएँ।
  • दस्तावेज़ फ़ोल्डर में अपनी एसक्यूएल स्क्रिप्ट फ़ाइल (script.sql) रखो।
  • Sqlcmd के साथ क्वेरी टाइप करें, सर्वर-नाम, डेटाबेस-नाम और स्क्रिप्ट-फ़ाइल का नाम जैसा कि ऊपर हाइलाइट किया गया क्वेरी या कमांड लाइन स्क्रीन के नीचे।

यहां छवि विवरण दर्ज करें


आप यूजरनेम -a और पासवर्ड -123 एड कर सकते हैं, sqlcmd -S viaserver -U sa -P 123 -d TelstraDeployed -i SQLQuery1.sql
अनिल सिंह

11

आप सर्वर प्रॉपर्टीज में न्यूनतम मेमोरी प्रति क्वेरी मान भी बढ़ा सकते हैं। इस सेटिंग को संपादित करने के लिए, सर्वर नाम पर राइट क्लिक करें और गुण> मेमोरी टैब चुनें।

मुझे SSMS 2012 में 30MB SQL स्क्रिप्ट निष्पादित करने की कोशिश में इस त्रुटि का सामना करना पड़ा। 1024MB से 2048MB तक मान बढ़ाने के बाद मैं स्क्रिप्ट को चलाने में सक्षम था।

(यह वही उत्तर है जो मैंने यहां दिया है )


9

Windows प्रमाणीकरण के लिए इस sql cmd का उपयोग करें

SQLCMD -S TestSQLServer\SQLEXPRESS  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

नोट: यदि sql फ़ाइल पथ में कोई स्थान है तो "(उद्धरण चिह्नों) का उपयोग करें"

SQL सर्वर प्रमाणीकरण के लिए इस sql cmd का उपयोग करें

SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa  -d AdventureWorks2018 -i "d:\document\sql document\script.sql"

-S TestSQLServer \ SQLEXPRESS: यहां SQL सर्वर नाम निर्दिष्ट करें

-U sa: उपयोगकर्ता नाम (SQL सर्वर प्रमाणीकरण के मामले में)

-सासा: पासवर्ड (SQL सर्वर प्रमाणीकरण के मामले में)

-d AdventureWorks2018: डेटाबेस का नाम यहां आता है

-i "d: \ document \ sql document \ script.sql": SQLFile का फ़ाइल पथ


5

यदि मैं आपकी समस्या को सही ढंग से समझता हूं, तो आप xyz.sql - डेटाबेस + स्कीमा को पुनर्स्थापित करने का प्रयास कर रहे हैं। आप इस कमांड को आज़मा सकते हैं जो मेरे लिए काम करता है:

SQLCMD -U sa -i xyz.sql

4

मेरा डेटाबेस 500mb से बड़ा था, मैंने तब निम्नलिखित का उपयोग किया

C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql

इसने एसपी सहित सभी चीजों को लोड किया

* NB: प्रशासक के रूप में cmd ​​चलाएँ


2

कभी-कभी, स्क्रिप्ट और डेटा के भारी आकार के कारण, हम इस प्रकार की त्रुटि का सामना करते हैं। सर्वर को निष्पादित करने और परिणाम देने के लिए पर्याप्त मेमोरी की आवश्यकता होती है। हम बस प्रति क्वेरी में मेमोरी का आकार बढ़ा सकते हैं।

आपको बस sql सर्वर प्रॉपर्टीज> मेमोरी टैब (लेफ्ट साइड) में जाना होगा> अब आप जो अधिकतम मेमोरी लिमिट जोड़ना चाहते हैं, उसे सेट करें।

इसके अलावा, शीर्ष पर एक विकल्प है, "टेक्स्ट को परिणाम", जो "मेमोरी टू ग्रिड" के विकल्प की तुलना में कम मेमोरी का उपभोग करता है, हम कम मेमोरी निष्पादन के लिए रिजल्ट टू टेक्स्ट भी जा सकते हैं।


2

नीचे स्क्रिप्ट पूरी तरह से काम करती है:

sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x

लक्षण:

Sqlcmd उपयोगिता के साथ एक रिकवरी स्क्रिप्ट निष्पादित करते समय, 'Sqlcmd: त्रुटि:' फ़ाइल_name.sql 'में कमांड' X 'के पास लाइन XYZ पर सिंटैक्स त्रुटि।' त्रुटि सामने आई है।

कारण:

यह एक sqlcmd उपयोगिता सीमा है। यदि SQL स्क्रिप्ट में किसी भी रूप में डॉलर का चिह्न ($) है, तो उपयोगिता स्क्रिप्ट को ठीक से निष्पादित करने में असमर्थ है, क्योंकि यह डिफ़ॉल्ट रूप से सभी चर को स्वचालित रूप से प्रतिस्थापित कर रहा है।

संकल्प:

किसी भी रूप में डॉलर ($) का संकेत देने वाली स्क्रिप्ट को निष्पादित करने के लिए, कमांड लाइन में "-x" पैरामीटर जोड़ना आवश्यक है।

जैसे

मूल: sqlcmd -s Server_name -d Database_name -E -ic: \ Temp \ Recovery_script.sll

फिक्स्ड: sqlcmd -s Server_name -d Database_name -E -ic: \ Temp \ Recovery_script.sql -x


$ टिप्पणी बहुत उपयोगी थी। धन्यवाद
पीला यवसुरा

1

sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P X1123 -d QLDB -i D: \ qldbscript.sql

  • व्यवस्थापक के रूप में चलाने में ओपन कमांड प्रॉम्प्ट

  • कमांड के ऊपर दर्ज करें

"mamxxxxxmu" कंप्यूटर का नाम है "sqlserverr" सर्वर नाम है "sa" सर्वर का उपयोगकर्ता नाम है "X1123" सर्वर का पासवर्ड है "QLDB" डेटाबेस का नाम है "D: \ qldbscript.sql डेटाबेस में निष्पादित करने के लिए sql स्क्रिप्ट फ़ाइल है


1

इस चरण को आज़माएं,

1) PowerShell खोलें

2) इस कमांड को लिखें:

sqlcmd -S PCNAME\SQLEXPRESS -U user -P password -d databanse_name -i C:\script.sql

3) प्रेस रिटर्न

:-)

यहां छवि विवरण दर्ज करें


1

यदि आपको विकास के दौरान स्थानीयडीबी से जुड़ने की आवश्यकता है, तो आप इसका उपयोग कर सकते हैं:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d dbname -i file.sql
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.