Sql सर्वर 'परिवर्तन सहेजने की अनुमति नहीं है' त्रुटि that उन परिवर्तनों को सहेजना रोकती है जिनके लिए तालिका पुन: निर्माण की आवश्यकता होती है


748

जब मैं SQL सर्वर में एक तालिका बनाता हूं और इसे सहेजता हूं, अगर मैं टेबल डिज़ाइन को संपादित करने का प्रयास करता हूं, जैसे कि कॉलम कॉलम को इंट से रियल में बदलना, मुझे यह त्रुटि मिलती है:

परिवर्तनों को सहेजने की अनुमति नहीं है। आपके द्वारा किए गए परिवर्तन के लिए निम्न तालिका को छोड़ना और फिर से बनाना आवश्यक है। आपने या तो एक तालिका में परिवर्तन किया है जिसे फिर से सृजित नहीं किया जा सकता है या विकल्प को सक्षम करने से बचाने वाले परिवर्तनों को रोका जा सकता है जिसके लिए तालिका को फिर से बनाया जाना आवश्यक है।

मुझे तालिका को फिर से क्यों बनाना है? मैं बस से एक डेटा प्रकार परिवर्तित करना चाहते smallintकरने के लिए real

तालिका खाली है, और मैंने अब तक इसका उपयोग नहीं किया है।


जवाबों:


1465

से बचाओ (अनुमति नहीं) MSDN पर संवाद बॉक्स :

सहेजें (अनुमति नहीं) संवाद बॉक्स आपको चेतावनी देते हैं कि परिवर्तनों को सहेजे क्योंकि परिवर्तन किए हैं की आवश्यकता होती है सूचीबद्ध टेबल गिरा दिया जाना और फिर से बनाया अनुमति नहीं है।

निम्नलिखित क्रियाओं के लिए एक तालिका की आवश्यकता हो सकती है:

  • तालिका के मध्य में एक नया कॉलम जोड़ना
  • एक स्तंभ गिराना
  • स्तंभ की अशक्तता बदलना
  • स्तंभों का क्रम बदलना
  • कॉलम के डेटा प्रकार को बदलना <<<<

इस विकल्प को बदलने के लिए, उपकरण मेनू, क्लिक करें विकल्प , विस्तार डिजाइनर , और फिर क्लिक करें टेबल और डाटाबेस डिजाइनरतालिका में फिर से बनाए गए चेक बॉक्स को बचाने के लिए आवश्यक परिवर्तनों को रोकें चुनें या साफ़ करें ।

इसके अलावा देखें Colt Kwong Blog Entry:
SQL 2008 मैनेजमेंट स्टूडियो में बचत परिवर्तन की अनुमति नहीं है


6
SSMS आपको पहले चेतावनी दिए बिना आपको कुछ असुरक्षित नहीं करने देना चाहिए। लेकिन हाथ में एक बैकअप है, बस मामले में।
रॉबर्ट हार्वे

39
यह विकल्प SSMS को बताता है कि वह आगे बढ़ सकता है और नए स्कीमा में एक Temp Table बना सकता है, इसमें डेटा कॉपी कर सकता है, फिर पुरानी टेबल को हटा सकता है और Temp टेबल को मूल नाम पर वापस कर सकता है। लेन-देन में जैसा होना चाहिए ठीक है, हालांकि रिश्तों को तोड़ दिया जाएगा और फिर से बनाया जाएगा, अगर 100% नहीं तो कुछ अप्रत्याशित हो सकता है।
जस्टिन किंग

13
पता नहीं क्यों मैं इस विकल्प को छोड़ने के लिए उन सरल चरणों को याद नहीं कर सकता हूं और मुझे हमेशा समाधान की तलाश करनी होगी। Hehehehehe। धन्यवाद दोस्त!
डेवलपर

8
पवित्र गाय - आप बस इस त्रुटि को पाने के लिए इसे बंद कर सकते हैं ?? मुझे यह नहीं पता था, और पिछले 3 सालों से अनजाने में एक पहचान विशिष्टता के बिना एक टेबल डिजाइन करने और एक नई तालिका बनाने के डर से रहते हैं। महान टिप!
nocarrier

4
यहां 'सेविंग चेंजेज चेंज ...' विकल्प: support.microsoft.com/en-us/kb/956176 को अक्षम करने पर Microsoft का CAVEAT है । मूल रूप से, आप मेटाडेटा को चेंज ट्रैकिंग की तरह खो सकते हैं, यदि यह आपके द्वारा उपयोग की जाने वाली विशेषता है।
बरोडाद

204

क्या आप SSMS का उपयोग करते हैं?

यदि हाँ, मेनू उपकरण >> विकल्प >> डिज़ाइनर और अनचेक करें "उन परिवर्तनों को रोकें जिन्हें तालिका के पुनः निर्माण की आवश्यकता है"


उपकरण >> विकल्प आदि .. "मेनू" नहीं (सिर्फ ssms 2014 के दृष्टिकोण से, जो मेरा मानना ​​है कि पुराने संस्करणों में समान है)
टॉम स्टिकेल

@TomStickel मुझे लगता है कि मेरा मतलब मीनू में है: "टूल्स"
ypercubeᵀᴹ

: पी हां मुझे लगा कि, मुझे लगा कि मैं किसी के लिए भी टिप्पणी करूंगा जो वास्तव में "अटक" जाएगा, डरावना मुझे पता है लेकिन मुझे लगता है कि कुछ लोग जल्दी से अपने हाथों को फेंक सकते हैं ... thx
टॉम स्टिकेल

2
@NeilMeyer सावधान रहें कि चेक बॉक्स को एक कारण के लिए वहाँ चेक किया गया है। यह एक सुरक्षा उपाय है जो संचालन को रोकने के लिए और एक मेज को फिर से बनाएगा और फिर से बनाएगा (और इस प्रकार अपने सभी डेटा को खो देगा ! इसलिए, सावधानी के साथ उपयोग करें!
ypercubeᵀᴹ

अगर तालिकाओं को इस तरह दोबारा बनाया जाता है तो क्या तालिकाओं के बीच के रिश्ते खो जाएंगे?
नील मेयर

78

उन बचत परिवर्तनों को रोकें जिनके लिए तालिका पुन: निर्माण की आवश्यकता होती है

पांच स्विफ्ट क्लिक

पांच क्लिक्स में टेबल री-क्रिएशन की आवश्यकता वाले बचत परिवर्तनों को रोकें

  1. उपकरण
  2. विकल्प
  3. डिजाइनर
  4. उन बचत परिवर्तनों को रोकें जिनके लिए तालिका पुन: निर्माण की आवश्यकता होती है
  5. ठीक है

सहेजने के बाद, बॉक्स को फिर से टिक करने के लिए छद्म को दोहराएं। यह सुरक्षित-गार्ड आकस्मिक डेटा हानि के खिलाफ है।

आगे की व्याख्या

  • डिफ़ॉल्ट रूप से SQL सर्वर प्रबंधन स्टूडियो तालिकाओं को छोड़ने से रोकता है, क्योंकि जब एक तालिका को गिरा दिया जाता है तो उसकी डेटा सामग्री खो जाती है। *

  • तालिका डिज़ाइन दृश्य में एक स्तंभ के डेटा स्वरूप में परिवर्तन करते समय, डेटाबेस को सहेजते समय परिवर्तन आंतरिक रूप से तालिका को छोड़ देता है और फिर एक नया बनाता है।

* आपकी तालिका खाली होने के बाद से आपकी विशिष्ट परिस्थितियाँ उत्पन्न नहीं होंगी। मैं इस स्पष्टीकरण को पूरी तरह से प्रक्रिया की आपकी समझ में सुधार प्रदान करता हूं।


27

तालिका पुन: निर्माण विकल्प की आवश्यकता वाले बचत को रोकने के लिए, इन चरणों का पालन करें:

SQL सर्वर प्रबंधन स्टूडियो (SSMS) खोलें। टूल मेनू पर, विकल्प क्लिक करें।

विकल्प विंडो के नेविगेशन फलक में, डिज़ाइनर पर क्लिक करें।

तालिका पुनर्-निर्माण चेक बॉक्स की आवश्यकता वाले परिवर्तनों को रोकने या चयन को साफ़ करें या फिर ठीक पर क्लिक करें।

नोट : यदि आप इस विकल्प को अक्षम करते हैं, तो जब आप तालिका को सहेजते हैं तो आपको चेतावनी नहीं दी जाती है कि आपने जो परिवर्तन किया है वह तालिका की मेटाडेटा संरचना को बदल दिया है। इस स्थिति में, डेटा की हानि तब हो सकती है जब आप तालिका को बचाते हैं।

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


टेबल डिजाइनर काम है, लेकिन आप इसके साथ सब कुछ हासिल नहीं कर सकते हैं
साइटकॉर सैम

22

यह बहुत आसान और सरल सेटिंग समस्या है जिसे इन चरणों का पालन करके 5 सेकंड में तय किया जा सकता है

तालिका बदलने के बाद आपको परिवर्तनों को सहेजने की अनुमति देने के लिए, कृपया अपनी sql सेटिंग के लिए इन चरणों का पालन करें:

  1. Microsoft SQL सर्वर प्रबंधन स्टूडियो 2008 खोलें
  2. उपकरण मेनू विकल्प पर क्लिक करें, फिर विकल्प पर क्लिक करें
  3. डिजाइनरों का चयन करें
  4. "री-क्रिएशन के लिए टेबल री-क्रिएशन" की आवश्यकता वाले परिवर्तनों को रोकने के लिए अनचेक करें
  5. ओके पर क्लिक करें
  6. अपनी तालिका को बदलने का प्रयास करें
  7. आपके परिवर्तन इच्छानुसार किए जाएंगे

8
यह किसी भी तरह से स्वीकृत उत्तर को कैसे जोड़ता है?
अमर ब्लू

17

शीर्ष मेनू पर स्थित टूल पर जाएं । ड्रॉपडाउन से विकल्प
चुनें। अब आपके पास मेनू के बाएँ हाथ ब्लॉक पर स्थित डिज़ाइनर विकल्प है। विकल्प को अनचेक करें तालिका में पुन: निर्माण की आवश्यकता वाले परिवर्तनों को सहेजना रोकें । ओके बटन पर क्लिक करें।


12

उपकरण ► विकल्पडिजाइनरों टैब Prevent saving changes that require table re-creationसे बॉक्स को अन-टिक करें ।

SQL सर्वर 2012 उदाहरण:

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


12

इसे Microsoft SQL Server में आसानी से बदला जा सकता है ।

  1. Microsoft SQL सर्वर प्रबंधन स्टूडियो 2008 खोलें
  2. टूल्स मेनू पर क्लिक करें
  3. विकल्प पर क्लिक करें
  4. डिजाइनरों का चयन करें
  5. "री-क्रिएशन की आवश्यकता वाले परिवर्तनों को रोकें" को अनचेक करें
  6. ओके पर क्लिक करें

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


7

इस लिंक से कॉपी किया गया "... महत्वपूर्ण रूप से हम दृढ़ता से अनुशंसा करते हैं कि आप इस समस्या को रोकने के लिए काम नहीं कर रहे हैं, जिससे बचत को रोकने के लिए परिवर्तन की आवश्यकता होती है, जिसके लिए तालिका पुन: निर्माण विकल्प की आवश्यकता होती है। इस विकल्प को बंद करने के जोखिमों के बारे में अधिक जानकारी के लिए," देखें अधिक जानकारी "अनुभाग।" '

"... इस समस्या को हल करने के लिए, तालिका की मेटाडेटा संरचना में परिवर्तन करने के लिए Transact-SQL कथनों का उपयोग करें। अतिरिक्त जानकारी के लिए SQL Server पुस्तकें ऑनलाइन में निम्न विषय का संदर्भ लें।"

उदाहरण के लिए, तालिका में टाइप डेटाइम के MyDate कॉलम को बदलने के लिए MyTable जिसे आप उपयोग किए जा सकने वाले NULL मान स्वीकार कर सकते हैं:

परिवर्तन तालिका MyTable परिवर्तन स्तंभ MyDate7 डेटाटाइम NULL "


2
इतने सारे जवाबों के साथ सभी एक ही बात कह रहे हैं, यह वह जवाब था जिसकी मुझे तलाश थी क्योंकि मेरे टेबल में लाइव डेटा था जिसे मैं ढीला नहीं करना चाहता था। मुझे 0 दशमलव स्थानों से 2 दशमलव स्थानों तक दशमलव कॉलम को अपडेट करने की आवश्यकता थी और सरल परिवर्तन कथन ने सही काम किया!
स्टिट्ज

यहां त्रासदी यह है कि SSMS को हुड के नीचे बिल्कुल ऐसा करना चाहिए और इस प्रकार तालिका को छोड़ने की आवश्यकता नहीं है
m12lrpv

6

और बस किसी के यहाँ भी ध्यान नहीं दिया जा रहा है (मेरी तरह):

Microsoft SQL Server 2012 के लिए, विकल्प संवाद बॉक्स में, एक छोटा सा चेक बॉक्स है, जो अन्य सभी सेटिंग को छिपता है। हालाँकि मुझे यह कहने को मिला कि मैंने उस छोटे राक्षस को इस बार याद किया है !!!

उसके बाद, आप कदम, डिजाइनर के साथ आगे बढ़ सकते हैं, ब्ला ब्ला ब्ला को बचाने के लिए अनचेक करें ...

sneaky_check_box_in_option


5

उपकरण >> विकल्प >> डिज़ाइनर और टेबल री-क्रिएशन की आवश्यकता वाले परिवर्तनों को सहेजना रोकें ”:

फोटो प्रारूप में वर्णन


2

1) ओपन टूल जो शीर्ष पर है।
2) पिकलिस्ट से विकल्प चुनें।
3) अब पॉपअप आता है और अब आप बाईं ओर मेनू की सूची से डिजाइनरों के विकल्प का चयन कर सकते हैं।
4) अब बचत परिवर्तन को रोकने के लिए अनियंत्रित होने की जरूरत है जो तालिका के पुनः निर्माण की आवश्यकता है। अब ओके पर क्लिक करें।


1

टूल्स मेनू से, विकल्प पर क्लिक करें, साइड मेनू से डिजाइनरों का चयन करें और उन परिवर्तनों को रोकें जो तालिका के मनोरंजन को जन्म दे सकते हैं। फिर परिवर्तन सहेजें


0

यदि आप उस छवि की तरह सूची में "तालिका में पुन: निर्माण" आवश्यक बचत परिवर्तन को रोक नहीं सकते हैं

आपको परिवर्तन ट्रैकिंग सक्षम करने की आवश्यकता है।

  • अपने डेटाबेस पर राइट क्लिक करें और गुण पर क्लिक करें
  • परिवर्तन ट्रैकिंग पर क्लिक करें और इसे सक्षम करें
  • उपकरण जाओ -> विकल्प -> फिर से डिजाइनर और इसे अनचेक करें।

0

यदि आप sql सर्वर प्रबंधन स्टूडियो का उपयोग करते हैं तो उपकरण >> विकल्प >> डिज़ाइनर पर जाएँ और "री-क्रिएशन की आवश्यकता वाले परिवर्तनों को रोकना रोकें" मेरे साथ काम करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.