2012-06-21 14 views
6

के रूप में सेट करने में समस्या होने में मुझे not null के रूप में एक गणना कॉलम सेट करने में समस्याएं आ रही हैं।एक गणना कॉलम को नल

जो मैं प्राप्त करना चाहता हूं वह C001, C002... इत्यादि है और साथ ही इसे not null के रूप में सेट करें।

मैंने एक मंच पर पढ़ा है कि यह शून्य मानों के लिए डिफ़ॉल्ट मान 0 का उपयोग कर हासिल किया जा सकता है।
जैसे, ISNULL(Price + Taxes, 0)

मैं इस सूत्र के लिए लागू करने की कोशिश की:

('C'+right('000'+CONVERT([varchar](3),[ID],(0)),(3))) 

लेकिन यह काम करने के लिए नहीं मालूम था। क्या कोई मुझे बता सकता है कि मुझे क्या याद आ रही है?

ALTER CreditCard accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0) 
+0

'isnull' के साथ आपका परिवर्तन कथन एक कॉलम बनाता है जो नल की अनुमति नहीं देता है। कम से कम मेरे परीक्षण में। हालांकि आप तालिका नाम और कॉलम नाम के बीच 'add' खो रहे हैं। –

+0

यूप। जो मैं बनाने की कोशिश कर रहा हूं वह एक स्तंभ है जो शून्य की अनुमति नहीं देता है। मैंने टेबल नाम और कॉलम नाम के बीच एक जोड़ जोड़ने का प्रयास किया लेकिन यह काम नहीं किया। – Keenlearner

+0

लेकिन ... आह .. मैंने जो कहा वह है। यह * एक कॉलम बनाता है जो नल की अनुमति नहीं देता है। आपको क्या हुआ? क्या काम नहीं किया? –

उत्तर

6

मुझे अंततः मेरी समस्या का समाधान मिला है!

सही क्वेरी होना चाहिए:

ALTER TABLE CreditCard ADD accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0) 

मदद लोग के लिए धन्यवाद!

3

यदि यह SQL सर्वर से संबंधित है, तो आप इसमें एमएसडीएन से रुचि रखते हैं।

'न केवल पूर्ण किए गए कॉलम के लिए न्यूल को निर्दिष्ट किया जा सकता है यदि व्यक्तिगत भी निर्दिष्ट किया गया हो।' http://msdn.microsoft.com/en-us/library/ms190273.aspx

... लेकिन रिवर्स इंजीनियरिंग जवाब से सवाल करने की कोशिश कर के बाद, मुझे लगता है कि 'keenlearner सुनिश्चित करने के लिए वहाँ कॉलम में एक शून्य मान कभी नहीं था कि बाधा के बिना केवल चाहता था।

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