2010-11-29 12 views
64

सीधे टी-एसक्यूएल का उपयोग करके डिफ़ॉल्ट बाधा जोड़ने के लिए कम से कम दो तरीके प्रतीत होते हैं। क्या मैं सही हूं कि नीचे दिए गए दोनों के बीच एकमात्र अंतर यह है कि दूसरी विधि विशेष रूप से बाधा के लिए एक नाम बनाती है, और पहली विधि में SQL सर्वर द्वारा उत्पन्न किया गया है?डिफ़ॉल्ट बाधा जोड़ने के लिए कमांड

ALTER TABLE [Common].[PropertySetting] ADD DEFAULT ((1)) FOR [Active]; 
ALTER TABLE [Common].[PropertySetting] ADD CONSTRAINT [DF_PropertySetting_Active) DEFAULT ((1)) FOR [Active]; 

उत्तर

85
सुंदर ज्यादा

, आपके द्वारा बनाए गए या बहुत बदल के लिए एक ही चरण में डिफ़ॉल्ट के साथ एक columnn जोड़ सकते हैं एक ALTER तालिका

के लिए हाँ।

ALTER TABLE foo ADD bar varchar(100) CONSTRAINT DF_Foo_Bar DEFAULT ('bicycle') 
ALTER TABLE foo ADD bar varchar(100) DEFAULT ('bicycle') 

जैसा कि आपने देखा है, अगर कोई आपूर्ति नहीं की जाती है तो सिस्टम एक नाम उत्पन्न करता है। CONSTRAINT constraint_name वैकल्पिक है एमएसडीएन कहते हैं। एक ही किसी भी column या table बाधा पर लागू होता है

संपादित स्तंभ पहले से ही बनाया गया था, और आप केवल बाधा उपयोग जोड़ना चाहते हैं:

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName; 
+2

मैं 'DF_Foo_Bar के बजाय एक उत्पन्न नाम का उपयोग कर सकते ', भले ही कॉलम पहले से मौजूद है? – slartidan

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