Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

ALTER TABLE कथन SQL सर्वर में CHECK बाधा के साथ विरोध करता है - SQL सर्वर / TSQL ट्यूटोरियल भाग 89

परिदृश्य:

आप SQL सर्वर डेवलपर के रूप में काम कर रहे हैं, आपको एक मौजूदा तालिका dbo में चेक बाधा जोड़ने के लिए कहा जाता है। FName कॉलम पर कर्मचारी और चेक बाधा के लिए तर्क लिखें ताकि इसे हमेशा अक्षर स्वीकार करना चाहिए।

जब आपने कोशिश की चेक बाधा जोड़ें, आपको नीचे त्रुटि मिली है।
संघर्ष डेटाबेस "YourDatabaseName", तालिका "dbo.Employee", कॉलम 'FName' में हुआ।

समाधान:

आइए पहले त्रुटि के लिए परिदृश्य उत्पन्न करें। कुछ नमूना डेटा के साथ नमूना dbo. कर्मचारी तालिका बनाएं। -एसक्यूएल टेबल में डेटा डालें डीबीओ में डालें। कर्मचारी (एफनाम, एलनाम, स्ट्रीट एड्रेस) मान ('आमिर', 'शहजाद', 'xyz पता') डीबीओ में डालें। कर्मचारी (एफनाम, एलनाम, स्ट्रीट एड्रेस) मान ('रजा ए') ,नल,'abc पता')जाओ
 
अब चेक की कमी को जोड़ने के लिए परिवर्तन तालिका विवरण चलाएँ। एक बार जब आप इस कथन को निष्पादित करेंगे तो आपको उपरोक्त त्रुटि मिलेगी। चूंकि मौजूदा डेटा चेक बाधा के लिए योग्य नहीं है। हमारे पास 'रज़ा ए' के ​​लिए पहले नाम में जगह है और हमारी चेक बाधा कहती है कि एफनाम में डेटा हमेशा अक्षर होना चाहिए। %')
 
 
 1) पहला समाधान:सही मौजूदा डेटाफिस्ट समाधान हो सकता है, आप उस डेटा को ढूंढ सकते हैं जो चेक बाधा के लिए योग्य नहीं है और उसे ठीक करें और फिर चेक बाधा जोड़ें।
2) यदि व्यवसाय मौजूदा डेटा को ठीक नहीं करना चाहता है और चेक बाधा को आगे बढ़ने से लागू करना चाहते हैं, आप नोचेक के साथ चेक बाधा बना सकते हैं। ऐसा करने से यह हमारे चेक प्रतिबंध नियम के खिलाफ मौजूदा डेटा को मान्य नहीं करेगा बल्कि केवल नए डेटा पर लागू होगा।
 
 
 आइए कुछ रिकॉर्ड डालें और जांचें कि क्या हमारी बाधा अपेक्षा के अनुरूप काम कर रही है।
dbo में डालें। कर्मचारी (FName, LName, StreetAddress) मान ('टेस्ट 123', नल, 'परीक्षण पता') में डालें dbo.Employee(FName,LName,StreetAddress)मान ('नजफ', नल, 'परीक्षण पता')जाएं
 
 
 पहला इंसर्ट विफल हो जाएगा क्योंकि यह हमारे चेक बाधा नियम के योग्य नहीं है। दूसरा रिकॉर्ड सफलतापूर्वक डाला जाएगा। आइए अब तालिका में डेटा की जाँच करें।
एसक्यूएल सर्वर में मौजूदा डेटा के साथ कॉलम में चेक बाधा कैसे जोड़ें

वीडियो डेमो :चेक कंस्ट्रक्शन के साथ विवादित ऑल्टर टेबल स्टेटमेंट में त्रुटि को कैसे ठीक करें


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में डेटाबेस चेकप्वाइंट

  2. SQL डेटाबेस पुनर्प्राप्ति लंबित पहुँच अस्वीकृत समस्या को ठीक करें

  3. वीएस2012 में स्थानीय डीबी से कनेक्ट करने में असमर्थ - SQL सर्वर से कनेक्शन स्थापित करते समय नेटवर्क से संबंधित या इंस्टेंस-विशिष्ट त्रुटि उत्पन्न हुई ...

  4. SQL सर्वर इस त्रुटि को क्यों फेंक रहा है:मान NULL को कॉलम 'id' में सम्मिलित नहीं कर सकता?

  5. तालिका के केवल एक कॉलम के आधार पर डुप्लिकेट मानों को हटाना