2012-01-12 12 views
110

मैं सामग्री खोने के बिना 255 वर्णों से 500 तक वर्चर कॉलम की लंबाई अपडेट करने का प्रयास कर रहा हूं। मैंने पहले टेबल को छोड़ दिया है और फिर से बनाया है लेकिन मुझे कभी भी कथन कथन का खुलासा नहीं हुआ है, जो मुझे विश्वास है कि मुझे ऐसा करने के लिए उपयोग करने की ज़रूरत है। मुझे यहां प्रलेखन मिला: ALTER TABLE (Transfact-SQL) हालांकि मैं इसके सिर या पूंछ नहीं बना सकता।एक वर्चर कॉलम की अधिकतम लंबाई बदल रहा है?

मैं निम्नलिखित अब तक (अनिवार्य रूप से दुर्भाग्य से कुछ भी नहीं है):

alter table [progennet_dev].PROGEN.LE 
alter column UR_VALUE_3 

मैं इस दृष्टिकोण है कैसे? क्या इस कथन के लिए वहां बेहतर दस्तावेज़ीकरण है (मैंने उदाहरण विवरण के लिए कुछ खोज की हैं लेकिन खाली आ गई हैं)?

उत्तर

212

आप

ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL] 

जरूरत है लेकिन अगर वांछित NOT NULL स्पष्ट रूप से निर्दिष्ट करने के लिए याद है।

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL; 

आप इसे अनिर्दिष्ट नीचे के रूप में छोड़ देते हैं ...

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500); 

तब स्तंभ nulls भले ही वह मूल रूप से NOT NULL के रूप में परिभाषित किया गया था की अनुमति के लागू हो जाएगी। यानी ALTER TABLE ... ALTER COLUMN में विनिर्देश को छोड़कर हमेशा के रूप में माना जाता है।

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL; 

यह व्यवहार ALTER TABLE (या CREATE TABLE समय में) के साथ बनाए गए नए कॉलम के लिए इस्तेमाल किया है कि से अलग है। वहां डिफ़ॉल्ट शून्यता ANSI_NULL_DFLT सेटिंग्स पर निर्भर करती है।

+0

आप जोड़ने के उद्देश्य से समझा सकते हैं याद ? सिर्फ जिज्ञासा है कि आपके जवाब में यह मिच क्यों नहीं था? – Codingo

+0

@MitchWheat - ["ANSI_NULL डिफ़ॉल्ट हमेशा ALTER COLUMN के लिए चालू होते हैं; यदि निर्दिष्ट नहीं है, तो कॉलम शून्य है।"] (Http://msdn.microsoft.com/en-us/library/ms190273.aspx) –

+0

तो [ नॉट नहीं] निर्दिष्ट करता है कि नल मान-कैनॉट- कॉलम में रखा जाना चाहिए? – Codingo

16

ALTER साथ स्तंभ आकार बढ़ाने से किसी भी डेटा नहीं खोएंगे:

alter table [progennet_dev].PROGEN.LE 
    alter column UR_VALUE_3 varchar(500) 

@Martin बताते हैं के रूप में, स्पष्ट रूप से '[नहीं] शून्य' यहाँ निर्दिष्ट करने के लिए NULL | NOT NULL

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