- अपूर्ण कॉलम में डेटा की सीमाओं को समझना
- मौजूदा कॉलम डेटा को रद्द करना
- कॉलम डेटा संरचना बदलें
- बदली हुई अशक्तता की पुष्टि करें
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 [email protected] 1-843-863-2697
2 Flynn Fry [email protected]
3 Wyatt Schmidt [email protected] 1-950-895-1847
4 Oleg Hill [email protected] 1-173-344-1578
5 Randall Bullock [email protected]
6 Lamar White [email protected] 1-421-757-4907
7 Fuller Hill [email protected] 1-178-437-8281
8 Ulysses Boyle [email protected] 1-535-515-1494
9 Paki Palmer [email protected]
10 Kamal Buchanan [email protected] 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 [email protected] 1-843-863-2697
2 Flynn Fry [email protected] 0-000-000-0000
3 Wyatt Schmidt [email protected] 1-950-895-1847
4 Oleg Hill [email protected] 1-173-344-1578
5 Randall Bullock [email protected] 0-000-000-0000
6 Lamar White [email protected] 1-421-757-4907
7 Fuller Hill [email protected] 1-178-437-8281
8 Ulysses Boyle [email protected] 1-535-515-1494
9 Paki Palmer [email protected] 0-000-000-0000
10 Kamal Buchanan [email protected] 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', '[email protected]', 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]