2010-07-07 18 views
7

मैंने अभी SQL Server 2008 स्थापित किया है और AdventureWorksDatabase आयात किया है (SQL 2005 के लिए, 2008 के लिए जो काम नहीं किया था)।SQL सर्वर 2008 में केस संवेदनशील जांच को कैसे हटाएं?

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

प्लस इंटेलिजेंस भी बहुत अच्छा काम नहीं करता है।

कुछ
select name, collation_name 
from sys.databases 

एक मिलान नाम होगा जैसे: -

उत्तर

11

केस संवेदनशीलता मिलान डाटाबेस का उपयोग करता द्वारा नियंत्रित किया जाता प्रणाली सूची विचारों पूछताछ की इस जाँच Latin1_General_CI_AS

_CI_ हिस्सा कह रहा है यहां यह केस असंवेदनशील संयोजन है। यदि आपको _CS_ दिखाई देता है तो यह केस संवेदनशील संयोजन है।

आप का उपयोग कर एक डेटाबेस के डिफ़ॉल्ट मिलान बदल सकते हैं:

ALTER DATABASE AdventureWorks COLLATE ....... 

और यहाँ किसी वैध मिलान लेने - एक _CI_ साथ एक का उपयोग एक केस-संवेदी मिलान प्राप्त करने के लिए।

समस्या यह है कि: यदि आप डेटाबेस स्तर पर संयोजन बदलते हैं, तो कुछ तालिकाओं में अभी भी अलग-अलग कॉलम हो सकते हैं, जब तालिका बनाई गई थी तो एक विशिष्ट संयोजन परिभाषित किया गया था। आप इन सभी को भी बदल सकते हैं, लेकिन यह एक बड़ा उपक्रम होगा। अधिक जानकारी और स्क्रिप्ट के लिए this article देखें और संभवतः अपनी तालिकाओं में अलग-अलग कॉलम बदलें।

इंटेलिजेंस ठीक से काम नहीं कर रहा है कारण यह है कि डेटाबेस ऑब्जेक्ट्स की प्रति संवेदनशीलता सर्वर कॉलेशन द्वारा नियंत्रित होती है - जो कि किसी भी डेटाबेस डिफ़ॉल्ट से अलग हो सकती है।

पता लगाने के लिए सर्वर का मिलान है, का उपयोग करें:

SELECT SERVERPROPERTY('Collation') 

बदलने सर्वर सिस्टम मिलान काफी गंदा प्रक्रिया है और आप explained here के रूप में मूल setup.exe उपयोग करने के लिए की आवश्यकता है।

2

यहां समस्या तालिका नाम संपर्क की केस संवेदनशीलता है। आप के रूप में collation_name के लिए Latin1_General_CI_AS

चेक डाटाबेस AdventureWorks की collation_name स्थापित करना चाहिए:

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

तो collation_nameLatin1_General_BIN या Latin1_General_CS_AS यह Latin1_General_CI_AS

ALTER DATABASE AdventureWorks 
COLLATE Latin1_General_CI_AS ; 
GO 

करने के लिए परिवर्तन है डाटाबेस बंद कर दिया गया है, तो यह क्रिया करने के लिए "डेटाबेस को विशेष रूप से लॉक नहीं किया जा सका ओ ऑपरेशन करते हैं। "।एकल उपयोगकर्ता

को डाटाबेस में परिवर्तन और

ALTER DATABASE AdventureWorks 
COLLATE Latin1_General_CI_AS ; 
GO 

कर वापस लाएं मल्टी उपयोगकर्ता के लिए डाटाबेस अंत में

ALTER DATABASE AdventureWorks SET MULTI_USER WITH ROLLBACK IMMEDIATE 

या

आप मिलान डाटाबेस गुण में बदल सकते हैं ।

enter image description here