5

मैं एक एसक्यूएल सर्वर डाटाबेस परियोजना विजुअल स्टूडियो 2012 के साथ उपयोग कर रहा हूँ और समस्या निम्नलिखित है जब की तुलना और एक अद्यतन स्क्रिप्ट पैदा करने को शामिल करें एक डिफ़ॉल्ट बाधा के साथ एक कॉलम, उदाहरण के लिए:अद्यतन स्क्रिप्ट की पीढ़ी में डिफ़ॉल्ट बाधा नाम

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] NOT NULL DEFAULT N'' 

दुर्भाग्य से, डिफ़ॉल्ट बाधा के नाम दिखाई नहीं देता जब:

  • तुलना (स्कीमा तुलना करें) वास्तविक डेटाबेस
  • एक अद्यतन स्क्रिप्ट जनरेट कर रहा है के साथ अपने प्रोजेक्ट (स्कीमा के भीतर से तुलना करें)

बनाया अद्यतन स्क्रिप्ट निम्न स्क्रिप्ट (कोई बाधा नाम) शामिल हैं:

ALTER TABLE [dbo].[ExistingTable] 
    ADD [NewColumn] NVARCHAR (50) DEFAULT N'' NOT NULL; 

यह एक बहुत बड़ी भूल की तरह लगता है, इसलिए मैं जहां सभी डेटाबेस कार्यों में डिफ़ॉल्ट की कमी के नाम शामिल करने के लिए जादू स्विच खोजने के लिए सोच रहा हूँ।

उत्तर

4

मुझे लगता है कि आदेश आपकी परिभाषा में बंद हो सकता है। अपनी बाधा परिभाषा के बीच में "नल न्यूल" भाग को लाइन के अंत में ले जाने का प्रयास करें।

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] DEFAULT N'' NOT NULL