डेटाटाइप वरीयता के कारण यह पूरी तरह से अनुमानित और अपेक्षित है।
इसके लिए 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 संपादित करें
चैट
जीबीएन:
यादृच्छिक:
जीबीएन
जैसा कि ताओ ने उल्लेख किया है , यह समझना महत्वपूर्ण है कि कोई अन्य असंबंधित क्वेरी को तोड़ सकता है, भले ही यह ठीक हो।