डेटाटाइप वरीयता के कारण यह पूरी तरह से अनुमानित और अपेक्षित है।
इसके लिए UI कॉलम को दशमलव (25,0) में बदल दिया जाएगा
where UI = 2011040773395012950010370
यह लगभग सही है। दाहिने हाथ की ओर वर्चर है और इसे नवरचर में बदल दिया गया है
where UI = '2011040773395012950010370'
यह वास्तव में . है सही संस्करण जहां दोनों प्रकार समान हैं
where UI = N'2011040773395012950010370'
त्रुटियां शुरू हो गई होंगी क्योंकि UI कॉलम में अब एक ऐसा मान है जो दशमलव (25,0) पर CAST नहीं होगा।
कुछ असंबंधित नोट:
- यदि आपके पास UI कॉलम पर एक अनुक्रमणिका है तो इसे पहले संस्करण में अनदेखा कर दिया जाएगा क्योंकि निहित CAST आवश्यक है
- क्या आपको संख्यात्मक अंकों को संग्रहीत करने के लिए यूनिकोड की आवश्यकता है? एक गंभीर ओवरहेड है भंडारण और प्रदर्शन में यूनिकोड डेटा प्रकारों के साथ
- क्यों न उपयोग करें
char(25)
याnchar(25)
क्या मान हमेशा निश्चित लंबाई के होते हैं? आपके प्रश्न का बहुत अधिक उपयोग करते हैं अनुकूलक के रूप में स्मृतिnvarchar(256)
. के आधार पर 128 वर्णों की औसत लंबाई मानता है
संपादित करें, टिप्पणी के बाद
जब आप पता नहीं . के बारे में नहीं सोचते तो "यह कभी-कभी क्यों काम करता है" यह मत समझिए कि यह काम करता है
उदाहरण:
- मान को मिटाया जा सकता था और बाद में जोड़ा जा सकता था
- एक TOP क्लॉज या SET ROWCOUNT का मतलब यह हो सकता है कि आपत्तिजनक मूल्य तक नहीं पहुंचा गया है
- क्वेरी कभी नहीं चलाई गई, इसलिए यह विफल नहीं हो सकती
- त्रुटि को किसी अन्य कोड द्वारा चुपचाप अनदेखा किया जाता है?
उम्मीद से अधिक स्पष्टता के लिए 2 संपादित करें
चैट
जीबीएन:
यादृच्छिक:
जीबीएन
जैसा कि ताओ ने उल्लेख किया है , यह समझना महत्वपूर्ण है कि कोई अन्य असंबंधित क्वेरी को तोड़ सकता है, भले ही यह ठीक हो।