2012-03-26 20 views
37

मैं एक मेज tbl_Candidate बनाई में तालिका डिजाइन बदल सकते हैं नहीं ... लेकिन मैं मेज पर प्राथमिक कुंजी सेट करने के लिए भूल गया और मैं प्राथमिक कुंजी के बिना इसे बचाया ...एसक्यूएल सर्वर 2008

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

यह संदेश है जब मैं टेबल में बदलावों को सहेजने की कोशिश कर रहा हूं तो पॉप अप ... !!

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

मैं Windows प्रमाणीकरण, सर्वर प्रकार के रूप में साथ एसक्यूएल सर्वर में लॉग इन कर रहा हूँ डेटाबेस इंजन और सर्वर का नाम .\SQLExpress है।

मुझे इस समस्या या SQL सर्वर की सेटिंग में बदलाव करने के लिए रास्ता सही करने के लिए एक तरह से दे ... मुझे एक दिशा-निर्देश दे कृपया .. धन्यवाद ..

उत्तर

78

जवाब MSDN site पर है:

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

निम्न क्रियाएँ एक मेज की आवश्यकता हो सकती:

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

संपादित करें 1:

अतिरिक्त उपयोगी here से जानकारियां:

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

  1. ओपन एसक्यूएल सर्वर प्रबंधन स्टूडियो (एसएसएमएस)।
  2. टूल्स मेनू पर, विकल्प क्लिक करें।
  3. विकल्प विंडो के नेविगेशन फलक में, डिज़ाइनर पर क्लिक करें।
  4. तालिका पुन: निर्माण चेक बॉक्स की आवश्यकता वाले परिवर्तनों को सहेजने से रोकें या साफ़ करें, और उसके बाद ठीकक्लिक करें।

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

"रोकें परिवर्तन है कि तालिका फिर से सृजन की आवश्यकता बचत" विकल्प

बंद करने से हालांकि इस विकल्प को बंद मदद कर सकते हैं फिर से बनाने के लिए एक तालिका से बचने के जोखिम है, यह भी परिवर्तन किया जा रहा करने के लिए नेतृत्व कर सकते हैं खो गया। उदाहरण के लिए, मान लें कि आप SQL Server 2008 में तालिका में परिवर्तन ट्रैक को बदलने के लिए ट्रैकिंग ट्रैकिंग सुविधा सक्षम करते हैं। जब आप एक ऑपरेशन करते हैं जो तालिका को पुन: निर्मित करने का कारण बनता है, तो आपको "लक्षण" खंड में उल्लिखित त्रुटि संदेश मिलता है। हालांकि, अगर आप इस विकल्प को बंद करते हैं, तो मौजूदा परिवर्तन ट्रैकिंग जानकारी हटा दी जाती है जब तालिका फिर से बनाई जाती है। इसलिए, हम अनुशंसा करते हैं कि आप विकल्प को बंद करके इस समस्या के आसपास पर काम न करें।

Settings, screen shot

+1

धन्यवाद .. सर ... – tharindlaksh

+0

उत्तर के लिए बहुत बहुत धन्यवाद! –

+0

धन्यवाद मिस्टर @pylover –

6

आप सीधे तालिका

ALTER TABLE TableName 
ADD CONSTRAINT ConstraintName PRIMARY KEY(ColumnName) 
GO 

सुनिश्चित करें कि आपके प्राथमिक कुंजी स्तंभ किसी भी शून्य मान नहीं होना चाहिए बनाने के लिए एक बाधा जोड़ सकते हैं।

विकल्प 2:

आप बदल सकते हैं अपने एसक्यूएल प्रबंधन स्टूडियो विकल्प

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

+0

धन्यवाद .. महोदय ... – tharindlaksh

1

रोकें परिवर्तन है कि तालिका फिर से सृजन की आवश्यकता

पांच तेज क्लिक्स

Prevent saving changes that require table re-creation in five clicks

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

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

आगे स्पष्टीकरण

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

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

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

संबंधित मुद्दे