2012-07-03 20 views
52

पर 50 एमबी स्क्रिप्ट चलाने के दौरान त्रुटि प्राप्त करना मैं SQL Server 2008 R2 का उपयोग कर रहा हूं, मेरे पास डीबी को अद्यतन करने के लिए एक स्क्रिप्ट है, वह स्क्रिप्ट लगभग आकार में 50 एमबी है और इसमें लगभग 800,000 लाइनें हैं।SQL सर्वर 2008 R2

त्रुटि: यह त्रुटि मिल रही बिना इस स्क्रिप्ट चलाने के लिए

TITLE: Microsoft SQL Server Management Studio

Cannot execute script.

ADDITIONAL INFORMATION:

Insufficient memory to continue the execution of the program. (mscorlib)

किसी ने मुझसे मदद कृपया कर सकते हैं?

उत्तर

84

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

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

आप एक डेटाबेस

+0

आवश्यक है, तो जब मैं यह कोड से ऊपर, संदेश 4060, स्तर 11, राज्य 1, सर्वर (मेरा पीसी लॉगिन नाम), रेखा का उपयोग कर यह मुझे कुछ त्रुटि दे रहा है द्वारा की कोशिश की 1 लॉगिन द्वारा अनुरोधित डेटाबेस "(स्थानीय)" नहीं खोल सकता है। लॉगिन विफल रहा। संदेश 18456, स्तर 14, राज्य 1, सर्वर (मेरा पीसी लॉगिन नाम), लाइन 1 लॉगिन उपयोगकर्ता के मेरे लॉगिन उपयोगकर्ता नाम के लिए विफल रहा। –

+0

क्योंकि उत्तर गलत था, तर्क के लिए डेटाबेस है "-d" –

+0

मैं SQLCMD -d मास्टर -i डी: \ BankMaster.sql का उपयोग नए डेटाबेस – RckLN

53

@ user1293068 के जवाब को जोड़ना पहुंचने के लिए अपने एसक्यूएल सर्वर उदाहरण का उपयोग करने की वैध क्रेडेंशियल्स की जरूरत है या यहां तक ​​कि, मैं उदाहरण के नाम निर्दिष्ट करने के लिए की जरूरत है।

sqlcmd -S <ComputerName>\<InstanceName> -d <DatabaseName> -i <MyScript.sql> 

यह टेकनेट के Use the sqlcmd Utility लेख पर प्रलेखित है: यहाँ मेरा पूरा वाक्य रचना है।

(ध्यान दें कि आप "एस" का एक स्विच मान दर्ज करना होगा, न कि "-s"। स्विच केस-संवेदी है।)

+1

के लिए अच्छी तरह से काम करता है अच्छा और साफ। – misha

+2

मैंने जो उपयोग किया - उदाहरण के लिए -> सी: \ उपयोगकर्ता \ tstick \ दस्तावेज़> sqlcmd -S server.subdomain.companyname.com, 4184 -d ebimap -i SQLscript.sql' –

+1

यह डिफ़ॉल्ट उदाहरण नाम (MSSQLSERVER) जैसा दिखता है) को जोड़ने के लिए बाहर रखा जाना चाहिए, उदाहरण के लिए 'sqlcmd -S localhost -d db' और' sqlcmd -S localhost \ mSSQLSERVER -d db' – BurnsBA

9

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

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

+0

धन्यवाद .. मेरे लिए काम किया .. – Mahib

+0

शानदार उत्तर! धन्यवाद। –

+0

इसे स्वयं सत्यापित नहीं कर सकता। "उपयोगकर्ता को यह क्रिया करने की अनुमति नहीं है" –

6

ठीक है, मेरी स्क्रिप्ट सफलतापूर्वक बहाल करने के लिए कोई भी जवाब पर्याप्त नहीं था।

तो:

  1. सुनिश्चित करें कि आपका नेटवर्क खाते दोनों एसक्यूएल सर्वर उदाहरण और विशिष्ट डेटाबेस आप पुनर्स्थापित करना चाहते हैं का उपयोग करने के लिए पर्याप्त अनुमतियाँ नहीं है।

  2. यह सबसे अच्छा है कि डेटाबेस आप का इरादा (संशोधनों के साथ दोनों स्कीमा और डेटा शामिल करने के लिए) यदि यह महज उत्पन्न स्क्रिप्ट से उत्पन्न किया गया था वास्तव में मौजूद बहाल करने के लिए,

  3. भागो प्रशासक मोड में कमांड लाइन उपकरण (है यदि आवश्यक हो), उदाहरण के लिए, प्रारंभ मेनू पर रन से सीएमडी टाइप करें

  4. कमांड-लाइन टूल में, "SQLCMD -d CMS -i C:\Carnotaurus\Data\script.sql" जैसे कुछ टाइप करें। यहां, CMS डेटाबेस का नाम है जिसे मैं पुनर्स्थापित करना चाहता हूं और "C:\Carnotaurus\Data\script.sql" पुनर्स्थापित स्क्रिप्ट का पूर्ण फ़ाइल पथ है जो SMSS में जेनरेट स्क्रिप्ट द्वारा जेनरेट किया गया था।

मुझे उम्मीद है कि यह कुछ यादगार चरणों को साफ़ करता है।

-1

मुझे SQL Server 2012 में भी इसी तरह की समस्या का सामना करना पड़ा, क्योंकि मेरी फ़ाइल का आकार 70 एमबी था।

समाधान जो मेरे लिए काम करता है, असीमित में लॉग फ़ाइल बढ़ाएं।

  1. ओपन SQL सर्वर प्रबंधन स्टूडियो
  2. वस्तु Explorer में, राइट डेटाबेस नाम पर क्लिक करें और गुण
  3. क्लिक करें फ़ाइल अनुभाग में, बदलें autogrow असीमित करने के लिए डेटा और लॉग आकार के आकार।
+0

असंबद्ध उत्तर! –

+0

@Charush क्या आप कृपया अपना जवाब हटाओ? यह पूरी तरह से अप्रासंगिक है। – Zeeshan

7

साख

sqlcmd -S <ComputerName>\<InstanceName> -U <username> -P <password> -d <DatabaseName> -i <MyScript.sql> 
संबंधित मुद्दे