मैं एक दृश्य जहां मैं एक स्तंभ केवल सही या गलत होने के लिए चाहते बनाने के लिए कोशिश कर रहा हूँ बनाने के लिए। हालांकि, ऐसा लगता है कि कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, एसक्यूएल सर्वर (2008) का मानना है कि मेरा बिट कॉलम किसी भी तरह शून्य हो सकता है।एक दृश्य के स्तंभ शून्य नहीं
मैं एक तालिका स्तंभ "स्थिति" जो INT, NULL
है साथ "उत्पाद" कहा जाता है। एक दृश्य में, मैं उत्पाद में प्रत्येक पंक्ति के लिए एक पंक्ति वापस करना चाहता हूं, यदि उत्पाद। स्टेटस कॉलम 3 के बराबर है, तो बीआईटी कॉलम को सही पर सेट किया गया है, अन्यथा बिट फ़ील्ड गलत होना चाहिए।
उदाहरण एसक्यूएल
SELECT CAST(CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
मैं एक दृश्य के रूप में इस प्रश्न के बचाने के लिए और वस्तु Explorer में स्तंभ पर गौर करते हैं तो कॉलम HasStatus BIT, NULL
को तैयार है। लेकिन यह कभी नहीं होना चाहिए। क्या कोई जादू एसक्यूएल चाल है जिसका उपयोग मैं इस कॉलम को NOT NULL
होने के लिए मजबूर करने के लिए कर सकता हूं।
सूचना है कि, अगर मैं CASE
आसपास CAST()
निकालने के लिए, स्तंभ सही ढंग से NOT NULL
के रूप में सेट कर दिया जाता है, लेकिन फिर स्तंभ के प्रकार है जो नहीं है जो मैं चाहता INT
के लिए निर्धारित है,। मैं इसे BIT
होना चाहता हूं। :-)
@Gunder: +1, StackOverflow करने के लिए आपका स्वागत है। मैं आपके सवाल का स्वरूपित किया, स्वरूपण :) –
आह के बारे में पता लगाने के लिए यह पर एक नजर है, मैं कोड से पहले एक और लाइन ब्रेक की जरूरत है। धन्यवाद। :-) –