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

SQL सर्वर क्वेरी में एक संयोजन विरोध को कैसे ठीक करें?

आप किसी क्वेरी में उपयोग किए गए कॉलेशन को एक विशेष कोलाज होने के लिए बाध्य करके समस्या का समाधान कर सकते हैं, उदा. SQL_Latin1_General_CP1_CI_AS या DATABASE_DEFAULT . उदाहरण के लिए:

SELECT MyColumn
FROM FirstTable a
INNER JOIN SecondTable b
ON a.MyID COLLATE SQL_Latin1_General_CP1_CI_AS = 
b.YourID COLLATE SQL_Latin1_General_CP1_CI_AS

उपरोक्त क्वेरी में, a.MyID और b.YourID टेक्स्ट-आधारित डेटा प्रकार वाले कॉलम होंगे। COLLATE का उपयोग करना डेटाबेस पर डिफ़ॉल्ट संयोजन को अनदेखा करने के लिए क्वेरी को बाध्य करेगा और इसके बजाय प्रदान किए गए संयोजन का उपयोग करेगा, इस मामले में SQL_Latin1_General_CP1_CI_AS

मूल रूप से यहां जो चल रहा है वह यह है कि प्रत्येक डेटाबेस का अपना संयोजन होता है जो "आपके डेटा के लिए छँटाई नियम, मामला और उच्चारण संवेदनशीलता गुण प्रदान करता है" (http://technet.microsoft.com/en-us/library/ms143726.aspx से) ) और टेक्स्ट डेटा प्रकार वाले कॉलम पर लागू होता है , जैसे VARCHAR , CHAR , NVARCHAR , आदि। जब दो डेटाबेस में अलग-अलग कॉलेशन होते हैं, तो आप दो अलग-अलग कॉलेशन के बीच के विरोध को संबोधित किए बिना टेक्स्ट कॉलम की तुलना बराबर (=) जैसे ऑपरेटर से नहीं कर सकते।



  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. आंतरायिक ODBC कनेक्शन विफलता

  3. SQL सर्वर पर varchar(MAX) बनाम TEXT का उपयोग करना

  4. SQL सर्वर कर्सर के साथ Salesforce डेटा अपडेट कर रहा है

  5. .NET 4:वेब में अन्य असेंबली में ईडीएमएक्स फ़ाइल को कैसे कॉन्फ़िगर करें