2010-07-30 13 views
77

का उपयोग कर एसक्यूएल सर्वर में शून्य बाधा को कैसे हटाएं I डेटा खोने के बिना एसक्यूएल सर्वर 2008 में शून्य बाधा को हटाने की कोशिश नहीं कर रहा हूं।क्वेरी

उत्तर

132
ALTER TABLE YourTable ALTER COLUMN YourColumn columnType NULL 
+5

। वैकल्पिक तालिका आपका टिकाऊ ऑलर कॉलम आपका कॉलम int NULL –

+0

या आप कर सकते हैं: तालिका तालिका_नाम बदलें स्तंभ_नाम प्रकार (30) नल को संशोधित करें। 30 आपके कॉलम प्रकार का आकार है, उदाहरण: वर्कर (30) – Nil

+20

पोस्टग्रेज़ में: 'ऑब्जेक्ट ऑब्जेक्ट ऑलटर कॉलम आपका कॉलम ड्रॉ नल' – Shane

-2

बस भावी पीढ़ी के लिए: तो जैसे

मैं घोषित किया गया था मेरे कॉलम नाम:

ALTER TABLE <table_name> ADD <column_name> <datatype> NOT NULL DEFAULT 0 

सफलतापूर्वक < स्तंभ > ड्रॉप करने के लिए प्रोग्राम के रूप में तुम इतनी तरह अपने स्तंभ घोषित करना चाहिए:

ALTER TABLE <table_name> ADD <column_name> <data_type> NOT NULL CONSTRAINT <default_constraint_name> DEFAULT 0 

को ड्रॉ करने के लिए 10 स्तंभ >:

  1. ALTER TABLE <table_name> DROP <default_constraint_name>
  2. ALTER TABLE <table_name> ALTER COLUMN <column_name> <data_type> NULL
  3. ALTER TABLE <table_name> DROP COLUMN <column_name>
+7

प्रश्न कॉलम को छोड़कर नल बाधा को हटाने के बारे में था। – Ben

+1

यदि आप बाधा को ठीक से नहीं हटाते हैं, तो आप कॉलम ड्रॉप नहीं कर पाएंगे .. – Amalgovinus

-2

आप किसी भी बाधाओं से पहले नहीं अशक्त स्तंभ

DECLARE @ConstraintName nvarchar(200) 
SELECT @ConstraintName = Name 
FROM SYS.DEFAULT_CONSTRAINTS 
WHERE PARENT_OBJECT_ID = OBJECT_ID('<tableName>') 
     AND PARENT_COLUMN_ID = 
     (SELECT column_id 
      FROM sys.columns 
      WHERE NAME = N'<columnToDelete>' 
       AND object_id = OBJECT_ID(N'<columnToDelete>')) 
IF @ConstraintName IS NOT NULL 
EXEC('ALTER TABLE <tableNAme> DROP CONSTRAINT ' + @ConstraintName) 
IF EXISTS (SELECT * FROM syscolumns WHERE id=object_id('<TableName>') AND name='<columnToDelete>') 
EXEC('ALTER TABLE <tableName> DROP COLUMN <columnToDelete>') 

यह मेरे लिए काम हटाना निकाल देना चाहिए !!

+1

प्रश्न बाधा को हटाने के बारे में है, कॉलम नहीं। – Martin

2

निकालें बाधा not nullnull मैंने पाया मैं YourColumn जैसे प्रकार शामिल करने के लिए किया था के लिए

ALTER TABLE 'test' CHANGE COLUMN 'testColumn' 'testColumn' datatype NULL; 
+0

यह क्यों काम करता है और उपरोक्त स्वीकृत उत्तर mysql के लिए नहीं है? – HopeKing

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