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

एसक्यूएल सर्वर (टी-एसक्यूएल) में संयोजन कैसे खोजें

Collation को सर्वर स्तर, डेटाबेस स्तर, स्तंभ स्तर, अभिव्यक्ति स्तर और पहचानकर्ता स्तर पर निर्दिष्ट किया जा सकता है। इनमें से प्रत्येक के लिए एक अलग विधि की आवश्यकता होती है।

सर्वर स्तर का मिलान

यहां बताया गया है कि सर्वर स्तर का मिलान कैसे किया जाता है:

SELECT CONVERT (varchar, SERVERPROPERTY('collation')) AS 'Server Collation';

यह कोलेशन इस तरह लौटाता है:

Server Collation
----------------------------
SQL_Latin1_General_CP1_CI_AS


आप sp_helpsort का भी उपयोग कर सकते हैं सर्वर के लिए डिफ़ॉल्ट संयोजन वापस करने के लिए संग्रहीत कार्यविधि:

EXECUTE sp_helpsort;

यह कोलेशन इस तरह लौटाता है:

Server default collation
----------------------------
Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive for Unicode Data, SQL Server Sort Order 52 on Code Page 1252 for non-Unicode Data

डेटाबेस स्तर का मिलान

किसी विशिष्ट डेटाबेस के संयोजन को वापस करने के लिए निम्न क्वेरी चलाएँ। WHERE क्लॉज आपको परिणामों को उस डेटाबेस तक सीमित करने की अनुमति देता है जिसमें आप रुचि रखते हैं:

SELECT 
    name, 
    collation_name 
FROM sys.databases
WHERE name = 'Music';

इसका परिणाम कुछ इस तरह होता है:

name   collation_name              
-----  ----------------------------
Music  SQL_Latin1_General_CP1_CI_AS

इस मामले में, हमने Music . नामक डेटाबेस निर्दिष्ट किया है ।

आप DATABASEPROPERTYEX() . का भी उपयोग कर सकते हैं डेटाबेस के लिए डिफ़ॉल्ट संयोजन वापस करने के लिए कार्य:

SELECT DATABASEPROPERTYEX('Music', 'Collation') AS Collation;

कॉलम लेवल कोलेशन

कॉलम स्तर पर कोलेशन भी निर्दिष्ट किया जा सकता है। यह पता लगाने के लिए कि एक विशिष्ट कॉलम किस संयोजन का उपयोग करता है, sys.columns . के विरुद्ध एक क्वेरी चलाएँ . इस तरह:

SELECT 
    name, 
    collation_name 
FROM sys.columns 
WHERE name = N'ArtistName';

इसका परिणाम कुछ इस तरह होता है:

name   collation_name              
----------  ----------------------------
ArtistName  SQL_Latin1_General_CP1_CI_AS

अभिव्यक्ति और पहचानकर्ता स्तर संयोजन

कोलेशन कास्ट को लागू करने के लिए कोलेशन को कैरेक्टर स्ट्रिंग एक्सप्रेशन पर लागू किया जा सकता है। उदाहरण के लिए, आप COLLATE . का उपयोग कर सकते हैं SELECT . में क्लॉज उपयोग किए जाने वाले संयोजन को निर्दिष्ट करने के लिए कथन। इस तरह:

USE Music;
SELECT ArtistId, ArtistName
FROM Artists
ORDER BY ArtistName COLLATE Latin1_General_CI_AI;

वह संयोजन CI . का उपयोग करता है केस-असंवेदनशील, और AI . के लिए उच्चारण-असंवेदनशील के लिए।

हम इसे CS . में बदल सकते हैं केस-संवेदी के लिए, और AS उच्चारण-संवेदनशील के लिए, और क्वेरी परिणामों को अलग तरीके से (डेटा के आधार पर) क्रमबद्ध किया जा सकता है:

USE Music;
SELECT ArtistId, ArtistName
FROM Artists
ORDER BY ArtistName COLLATE Latin1_General_CS_AS;

इसलिए, यह आपको क्वेरी चलाते समय डेटाबेस या कॉलम स्तर पर लागू होने वाले संयोजन को ओवरराइड करने की अनुमति देता है।


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

  2. अल्पविराम से अलग किए गए मान अलग करें और sql सर्वर में तालिका में संग्रहीत करें

  3. टी-एसक्यूएल में स्प्लिट फ़ंक्शन बराबर?

  4. SQL सर्वर लेनदेन संबंधी प्रतिकृति मुद्दे

  5. SQL ओवर () क्लॉज - यह कब और क्यों उपयोगी है?