- अपूर्ण कॉलम में डेटा की सीमाओं को समझना
- मौजूदा कॉलम डेटा को रद्द करना
- कॉलम डेटा संरचना बदलें
- बदली हुई अशक्तता की पुष्टि करें
SQL सर्वर में किसी कॉलम की डेटा संरचना को NULL . से बदलना करने के लिए NOT NULL , जिससे उस कॉलम में गैर-शून्य मानों को अस्वीकार कर दिया जाता है, आमतौर पर अपेक्षाकृत सरल ALTER TABLE का उपयोग करके किया जाता है विचाराधीन कॉलम को उचित रूप से बदलने के लिए सिंटैक्स।
इस ट्यूटोरियल में हम मौजूदा . को बदलते समय आवश्यक महत्वपूर्ण सुरक्षा सावधानियों की जांच करेंगे वास्तव में कोई भी ALTER issuing जारी करने से पहले कॉलम में डेटा आदेश जो संभावित रूप से तालिका को ही नुकसान पहुंचा सकते हैं।
नॉट-न्यूल कॉलम में डेटा की सीमाओं को समझना
आपकी तालिका में कोई भी परिवर्तन किए जाने से पहले, यह महत्वपूर्ण है कि मौजूदा कॉलम में कौन सा डेटा निर्दिष्ट किया जा सकता है (और नहीं) जिसे आप NOT NULL में बदलना चाहते हैं। , यह सुनिश्चित करना कि किसी भी पंक्ति में NULL . होने की अनुमति नहीं है उस कॉलम में मान।
सबसे गंभीर रूप से, सभी मौजूदा NULL कॉलम के भीतर मान होना चाहिए ALTER . से पहले एक गैर-शून्य मान में अपडेट किया जाना चाहिए कमांड का सफलतापूर्वक उपयोग किया जा सकता है और कॉलम बनाया जा सकता है NOT NULL . कॉलम को NOT NULL पर सेट करने का कोई भी प्रयास जबकि वास्तविक NULL कॉलम में बचे हुए डेटा के परिणामस्वरूप त्रुटि होगी और कोई परिवर्तन नहीं होगा।
मौजूदा कॉलम डेटा को रद्द करना
यह सुनिश्चित करने के लिए कि कोई NULL नहीं है हमारे कॉलम में मान, हम एक बुनियादी UPDATE का उपयोग करेंगे कमांड, उन पंक्तियों पर स्पष्ट रूप से लागू होता है जहां मान वर्तमान में NULL है . उदाहरण के लिए, हमारे पास client . की एक मूल तालिका है name के साथ डेटा , email , और phone . वर्तमान में कुछ रिकॉर्ड में NULL है phone मूल्य, जिसकी हम अनुमति नहीं देना चाहते:
clientsID name email phone
1 Neville Estes Quisque@diamProin.com 1-843-863-2697
2 Flynn Fry velit@senectus.net
3 Wyatt Schmidt nibh.dolor@sit.co.uk 1-950-895-1847
4 Oleg Hill lacinia.vitae.sodales@acrisusMorbi.edu 1-173-344-1578
5 Randall Bullock eu@lacus.net
6 Lamar White ut.sem@risus.com 1-421-757-4907
7 Fuller Hill Vivamus.nisi@tempor.ca 1-178-437-8281
8 Ulysses Boyle sem.mollis.dui@Integeraliquamadipiscing.net 1-535-515-1494
9 Paki Palmer nec@euismod.org
10 Kamal Buchanan sapien.gravida@tellusnonmagna.co.uk 1-325-847-4838
इसलिए, हम सभी phone . के लिए एक डिफ़ॉल्ट मान सम्मिलित कर सकते हैं वे मान जो वर्तमान में NULL हैं निम्नलिखित कथन के साथ:
UPDATE
clients
SET
phone = '0-000-000-0000'
WHERE
phone IS NULL;
अब हमारा NULL सभी मानों को उस मान से बदल दिया गया है जिसे हम default . मानते हैं , 0-000-000-0000 :
clientsID name email phone
1 Neville Estes Quisque@diamProin.com 1-843-863-2697
2 Flynn Fry velit@senectus.net 0-000-000-0000
3 Wyatt Schmidt nibh.dolor@sit.co.uk 1-950-895-1847
4 Oleg Hill lacinia.vitae.sodales@acrisusMorbi.edu 1-173-344-1578
5 Randall Bullock eu@lacus.net 0-000-000-0000
6 Lamar White ut.sem@risus.com 1-421-757-4907
7 Fuller Hill Vivamus.nisi@tempor.ca 1-178-437-8281
8 Ulysses Boyle sem.mollis.dui@Integeraliquamadipiscing.net 1-535-515-1494
9 Paki Palmer nec@euismod.org 0-000-000-0000
10 Kamal Buchanan sapien.gravida@tellusnonmagna.co.uk 1-325-847-4838
कॉलम डेटा संरचना बदलें
अब जबकि कोई NULL नहीं है अब कोई भी मान, हम अपना ALTER जारी कर सकते हैं कॉलम को अपडेट करने के लिए स्टेटमेंट ताकि भविष्य के सभी जोड़ NULL . की अनुमति न दें मूल्य। चूंकि हम phone . को बदल रहे हैं इस उदाहरण में कॉलम, स्टेटमेंट कुछ इस तरह दिखेगा:
ALTER TABLE
clients
ALTER COLUMN
phone
NVARCHAR(20) NOT NULL;
बदली हुई अशक्तता की पुष्टि करें
एक बार आपके कॉलम में परिवर्तन हो जाने के बाद, यह सत्यापित करना एक अच्छा अभ्यास है कि कॉलम अब किसी भी NULL की अनुमति नहीं देता है। एक साधारण INSERT . चलाकर मान परीक्षण करें और NULL . के साथ एक नया रिकॉर्ड डालने का प्रयास करें बदले गए कॉलम में मान:
INSERT INTO
clients(name, email, phone)
VALUES
('John Doe', 'jdoe@domain.com', NULL);
यदि सब कुछ योजना के अनुसार हुआ, तो SQL सर्वर यह बताते हुए एक त्रुटि जारी करेगा कि कॉलम NULL की अनुमति नहीं देता है। मान:
Cannot insert the value NULL into column 'phone', table 'library.dbo.clients'; column does not allow nulls. INSERT fails. [SQL State=23000, DB Errorcode=515]