SQL सर्वर में स्तंभ का आकार बदलना


281

कैसे के स्तंभ आकार बदलने के लिए salaryमें स्तंभ employeeसे तालिका numeric(18,0)करने के लिएnumeric(22,5)

जवाबों:


507
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL

6
सावधान रहें, यदि आप एक बहुत बड़े डेटाटेबल में एक कॉलम बदल रहे हैं। आप (वैसे भी मेरे पर्यावरण पर) एक दुर्घटना का कारण बन सकते हैं।
डेविड दिवे

55
यह भी महत्वपूर्ण है कि यदि स्तंभ विशेषता के साथ है, NOT NULLतो उसे उस क्वेरी में उल्लिखित किया जाना चाहिए, जो इसे NULLडिफ़ॉल्ट रूप से सेट करेगा । ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
सुवेंदु शेखर गिरी

8
यदि आपके पास उस कॉलम पर एक इंडेक्स है तो आपको उसे छोड़ना होगा, फिर परिवर्तन तालिका कोड को निष्पादित करें और फिर फिर से इंडेक्स बनाएं
Sr.PEDRO



19

ALTER COLUMNविशेषता NOT NULLका उल्लेख किए बिना चलने से कॉलम को अशक्त में बदल दिया जाएगा, अगर यह पहले से ही नहीं है। इसलिए, आपको पहले जांचने की आवश्यकता है कि क्या कॉलम अशक्त है और यदि नहीं, तो विशेषता निर्दिष्ट करें NOT NULL। वैकल्पिक रूप से, आप निम्न कथन का उपयोग कर सकते हैं जो पहले से कॉलम की अशक्तता की जांच करता है और सही विशेषता के साथ कमांड चलाता है।

IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
    ALTER TABLE [Employee]
        ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE        
    ALTER TABLE [Employee]
        ALTER COLUMN [Salary] NUMERIC(22,5) NULL

6

निम्न चित्र में दिखाए गए डेटा प्रकार में तालिका -> डिज़ाइन -> परिवर्तन मूल्य चुनें।

यहां छवि विवरण दर्ज करें

सेव टेबल डिजाइन।


जाँच ठीक से हो सकता है आप कुछ कदम याद कर रहे हैं।
अर्नव १

7
उपकरण -> विकल्प ... /> डिजाइनर -> टेबल और डेटाबेस डिजाइनर - "री-क्रिएशन की आवश्यकता वाले परिवर्तन को रोकें" को अनचेक करें
7anner

ज्यादातर चीजों के लिए, मैं स्क्रिप्टिंग पसंद करता हूं। लेकिन कॉलम में बदलाव के लिए, मुझे यूआई पसंद है। NULL या किसी भी गणना या किसी भी अतिरिक्त स्तंभ गुण की जाँच करने के लिए याद रखने की आवश्यकता नहीं है। बस सहेजें पर क्लिक करें (जब आप SSMS में सेटिंग्स को @ 7anner नोट्स के रूप में बदलते हैं)।
जैकब एच

1

दिलचस्प दृष्टिकोण यहां पाया जा सकता है: स्पैगेटिडिबा द्वारा डाउनटाइम के साथ अपने कॉलम को कैसे बढ़ाएं

यदि आप इस कॉलम को एक सीधे "बेहतर टेबल" कमांड के साथ बढ़ाने की कोशिश करते हैं, तो आपको सभी पंक्तियों के माध्यम से जाने और नए डेटा प्रकार लिखने के लिए SQLServer का इंतजार करना होगा

ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;

इस असुविधा को दूर करने के लिए, एक जादुई स्तंभ वृद्धि की गोली है जिसे आपकी तालिका ले सकती है, और इसे रो संपीड़न कहा जाता है (...) रो संपीड़न के साथ, आपके निश्चित आकार के कॉलम केवल सबसे छोटे डेटा प्रकार द्वारा आवश्यक स्थान का उपयोग कर सकते हैं जहां वास्तविक डेटा फिट बैठता है।

जब तालिका ROWस्तर पर संकुचित होती है, तो ALTER TABLE ALTER COLUMNमेटाडेटा केवल ऑपरेशन होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.