एक डिफ़ॉल्ट बाधा जोड़ने के लिए आदेश


82

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

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

जवाबों:


105

बहुत, हाँ एक ठीक टेबल के लिए हाँ

आप CREATE या 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वैकल्पिक है MSDN कहते हैं। यही बात किसी भी कॉलम या टेबल CONSTRAINT पर लागू होती है

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

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

3
क्या मैं इसके बजाय एक उत्पन्न नाम का उपयोग कर सकता हूं DF_Foo_Bar, भले ही कॉलम पहले से मौजूद हो?
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.