Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

लिंक टू एंटिटीज:एनटीएक्स्ट फ़ील्ड पर ToLower () का उपयोग करना

कभी भी .ToLower() . का इस्तेमाल न करें केस-असंवेदनशील तुलना करने के लिए। ऐसा क्यों है:

  1. यह संभवतः गलत है (आपका क्लाइंट संयोजन, तुर्की हो सकता है, और आपका डीबी संयोजन नहीं हो सकता है)।
  2. यह अत्यधिक है अक्षम; SQL एमिटेड LOWER है = . के बजाय केस-असंवेदनशील संयोजन के साथ।

इसके बजाय, StringComparison.OrdinalIgnoreCase . का उपयोग करें या StringComparison.CurrentCultureIgnoreCase :

var q = from f in Context.Foos
        where f.Bar.Equals("hi", StringComparison.OrdinalIgnoreCase)
        select f;

लेकिन Contains() . के लिए एक समस्या है:Equals के विपरीत , StartsWith , आदि, इसमें StringComparison . के लिए अधिभार नहीं है बहस। क्यों? अच्छा प्रश्न; माइक्रोसॉफ्ट से पूछें।

वह, LOWER . पर SQL सर्वर की सीमा के साथ संयुक्त इसका मतलब है कि आप जो चाहते हैं उसे करने का कोई आसान तरीका नहीं है।

संभावित समाधान में शामिल हो सकते हैं:

  • एक पूर्ण पाठ अनुक्रमणिका का उपयोग करें, और एक प्रक्रिया में खोज करें।
  • Equals का उपयोग करें या StartsWith इसके बजाय, यदि संभव हो तो आपके कार्य के लिए
  • स्तंभ का डिफ़ॉल्ट मिलान बदलें?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में एक विशिष्ट लॉगिन के लिए एक साथ उपयोगकर्ता सत्रों को सीमित करना

  2. वीएस 2008 और एसक्यूएल सर्वर 2008 की स्थापना / स्थापना रद्द करने का आदेश

  3. SQL सर्वर में अपने शुद्ध उपयोगकर्ता परिभाषित फ़ंक्शन के प्रदर्शन को बेहतर बनाने के लिए मैं क्या कर सकता हूँ?

  4. SQL सर्वर 2008 को आउटलुक कैलेंडर से कनेक्ट करें?

  5. टीएसक्यूएल स्प्लिट एक्सएमएल नोड्स