दिलचस्प पोस्ट
एक सीएसवी फ़ाइल में टैब-सीमांकित txt फ़ाइल को कन्वर्ट करें पायथन का उपयोग कर जावा में XML के लिए पाठ डेटा को एन्कोड करने का सर्वोत्तम तरीका? एक UIView की पृष्ठभूमि की छवि कैसे भरें कैसे सबसे लंबे समय तक palindromic बाद में खोजने के लिए? आधुनिक रीजक्स इंजन पार्स की किस तरह की औपचारिक भाषाएं हो सकती हैं? आरएक्स का उपयोग करने वाली घटना स्ट्रीम कैसे थ्रॉटल करें? जांचें कि क्या डेटा डेटा में मौजूद है? जावास्क्रिप्ट त्रुटि (अनक्यूट सिंटैक्स त्रुटि: इनपुट का अनपेक्षित अंत) शारीरिक एनीमेशन चिकना नहीं है सी # – रिअलटाइम कंसोल आउटपुट रीडायरेक्शन यह कैसे बताने के लिए कि क्या समय क्षेत्र किसी भी समय डेलाइट बचत को देखता है? PHP, html टैग्स में गूंज कैसे करें MySQL में ओरेकल के रोविइड के समतुल्य जावा में धारावाहिक वर्गों को बढ़ाते समय क्या सीरियल VERSIONUID के लिए मैं क्या चुनता हूं? एक एएसपी.नेट वेबमैथ ​​के लिए jQuery AJAX कॉल

क्या एमएस एसक्यूएल सर्वर के साथ मामला संवेदनशील है?

पसंद ऑपरेटर के बारे में दस्तावेज में , मामले की संवेदनशीलता के बारे में कुछ भी नहीं बताया गया है। क्या यह? इसे कैसे सक्षम / अक्षम करें?

मैं varchar(n) कॉलमों को एक SQL सर्वर 2005 पर पूछता हूं, अगर यह मायने रखता है

Solutions Collecting From Web of "क्या एमएस एसक्यूएल सर्वर के साथ मामला संवेदनशील है?"

यह ऑपरेटर नहीं है जो मामला संवेदनशील होता है, वह स्तंभ ही होता है

जब किसी SQL सर्वर स्थापना को निष्पादित किया जाता है तो एक सामान्य मिलान उदाहरण के लिए चुना जाता है। जब तक अन्यथा स्पष्ट रूप से उल्लेखित (कॉलेट खंड bellow जांचें) जब एक नया डेटाबेस बनाया जाता है, तो यह उदाहरण से कोलेशन को विरासत में ले लेता है और जब एक नया कॉलम बनाया जाता है, तो यह डेटाबेस से सम्मिलन को संभालता है।

एक संयोजन की तरह sql_latin1_general_cp1_ci_as यह sql_latin1_general_cp1_ci_as करता है कि स्तंभ की सामग्री का इलाज कैसे किया जाना चाहिए। सीआई का मतलब केस असंवेदनशील है और एएस संवेदनशील संवेदनशील के लिए है।

Collations की पूरी सूची https://msdn.microsoft.com/en-us/library/ms144250(v=sql.105).aspx पर उपलब्ध है

(ए) एक उदाहरण कोलेशन जांचने के लिए

 select serverproperty('collation') 

(बी) एक डेटाबेस कोलेशन जांचने के लिए

 select databasepropertyex('databasename', 'collation') sqlcollation 

(सी) एक अलग कॉलेशन का उपयोग करके डेटाबेस बनाने के लिए

 create database exampledatabase collate sql_latin1_general_cp1_cs_as 

(डी) एक अलग कॉलेशन का उपयोग करके एक कॉलम बनाने के लिए

 create table exampletable ( examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null ) 

(ई) कॉलम कोलेशन को संशोधित करने के लिए

 alter table exampletable alter column examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null 

उदाहरण और डेटाबेस समाशोधन को बदलना संभव है लेकिन इससे पूर्व निर्मित वस्तुओं को प्रभावित नहीं किया जाता है।

स्ट्रिंग तुलना के लिए उड़ने पर कॉलम कोलेशन बदलने के लिए भी संभव है, लेकिन यह उत्पादन वातावरण में बेहद अनौपचारिक है क्योंकि यह अत्यंत महंगा है।

 select column1 collate sql_latin1_general_cp1_ci_as as column1 from table1 

आपकी तालिका को परिभाषित करने के समय आपके पास कॉलेशन ऑर्डर को परिभाषित करने का एक विकल्प है यदि आप केस-सेंसिटिव ऑर्डर परिभाषित करते हैं, तो आपका LIKE ऑपरेटर मामले-संवेदनशील तरीके से व्यवहार करेगा; यदि आप एक केस-असंवेदनशील मिलान आदेश को परिभाषित करते हैं, तो LIKE ऑपरेटर चरित्र केस को भी अनदेखा करेगा:

 CREATE TABLE Test ( CI_Str VARCHAR(15) COLLATE Latin1_General_CI_AS -- Case-insensitive , CS_Str VARCHAR(15) COLLATE Latin1_General_CS_AS -- Case-sensitive ); 

यहां Sqlfiddle पर एक त्वरित डेमो है, LIKE खोजों के साथ मिलान ऑर्डर के परिणाम दिखाए जा रहे हैं।

कोलेशन के बारे में यह सब बात थोड़ी अधिक जटिल लगती है क्यों न सिर्फ कुछ का उपयोग करें:

 IF UPPER(@@VERSION) NOT LIKE '%AZURE%' 

फिर आपका चेक संवेदीकरण के मामले में असंवेदनशील है

यदि आप कॉलम / डेटाबेस / सर्वर के COLLATE को बदलने के बिना केस संवेदनशील खोज प्राप्त करना चाहते हैं, तो आप हमेशा COLLATE क्लॉज का उपयोग कर सकते हैं, उदा।

 USE tempdb; GO CREATE TABLE dbo.foo(bar VARCHAR(32) COLLATE Latin1_General_CS_AS); GO INSERT dbo.foo VALUES('John'),('john'); GO SELECT bar FROM dbo.foo WHERE bar LIKE 'j%'; -- 1 row SELECT bar FROM dbo.foo WHERE bar COLLATE Latin1_General_CI_AS LIKE 'j%'; -- 2 rows GO DROP TABLE dbo.foo; 

दूसरे तरीके से भी काम करता है, यदि आपका कॉलम / डाटाबेस / सर्वर केस संवेदी है और आप केस संवेदनशील खोज नहीं चाहते हैं, उदा

 USE tempdb; GO CREATE TABLE dbo.foo(bar VARCHAR(32) COLLATE Latin1_General_CI_AS); GO INSERT dbo.foo VALUES('John'),('john'); GO SELECT bar FROM dbo.foo WHERE bar LIKE 'j%'; -- 2 rows SELECT bar FROM dbo.foo WHERE bar COLLATE Latin1_General_CS_AS LIKE 'j%'; -- 1 row GO DROP TABLE dbo.foo; 

like ऑपरेटर दो तार लेता है। इन तारों को संगत कॉललेशन करना पड़ता है, जिसे यहां समझाया गया है ।

मेरी राय में, चीजें तो जटिल हो जाएं निम्नलिखित क्वेरी में यह कहकर एक त्रुटि आई है कि सम्मिलन असंगत हैं:

 select * from INFORMATION_SCHEMA.TABLES where 'abc' COLLATE SQL_Latin1_General_CP1_CI_AS like 'ABC' COLLATE SQL_Latin1_General_CP1_CS_AS 

यहां यादृच्छिक मशीन पर, डिफ़ॉल्ट मिलान SQL_Latin1_General_CP1_CI_AS । निम्नलिखित क्वेरी सफल है, लेकिन कोई पंक्ति नहीं देता:

 select * from INFORMATION_SCHEMA.TABLES where 'abc' like 'ABC' COLLATE SQL_Latin1_General_CP1_CS_AS 

मान "एबीसी" और "एबीसी" एक मामले-संवेदी दुनिया में मेल नहीं खाते।

दूसरे शब्दों में, कोई मिलान नहीं होने और डिफ़ॉल्ट मिलान का उपयोग करने में अंतर है। जब एक तरफ कोई संयोग नहीं होता है, तो दूसरी तरफ से एक स्पष्ट मिलान "असाइन किया गया" है।

(परिणाम समान हैं जब स्पष्ट मिलान बायीं तरफ है।)

चलने का प्रयास करें,

 SELECT SERVERPROPERTY('COLLATION') 

फिर पता करें कि क्या आपके कोलेशन्स केस संवेदनशील हैं या नहीं