चलाने से पहले अपने तारों को बदल दिया है, मैं कुछ विशेष रिकॉर्डों को चुनने का प्रयास करता हूं, विशेष वर्ण होते हैं लेकिन SQL सर्वर क्वेरी चलाने से पहले मेरे स्ट्रिंग वर्ण बदलता है।एसक्यूएल सर्वर ने क्वेरी
उदाहरण के लिए:
DECLARE @param NVARCHAR(30)
SET @param=N'¤÷þ'--this is my special string that i want to be searched exactly.
DECLARE @TSQL varchar(8000)
SET @TSQL = 'SELECT * FROM MyTable WHERE MyFieldName LIKE %' + @param + '% '
PRINT @TSQL
--EXECUTE (@TSQL)
लेकिन परिणाम में (प्रिंट) मैं देख रहा हूँ: (?)
SELECT * FROM MyTable WHERE MyFieldName LIKE '%¤÷þ?%'
आप के लिए चरित्र परिवर्तित स्ट्रिंग के कुछ हिस्से को देखने के रूप में, इस समस्या को मेरी SELECT
कारण आदेश वापसी शून्य मूल्य।
मैं डेटाबेस है कि मैं करने के लिए क्वेरी चलाने का मिलान को बदलने की कोशिश:
SQL_Latin1_General_CP1_CI_AS
यह कुछ विशेष तार के साथ अच्छा काम लेकिन यह भी मेरी तार के सभी का समर्थन नहीं करता। तो, प्रश्न यहां है: मैं SQL सर्वर कैसे बता सकता हूं, कृपया मेरी स्ट्रिंग एएससीआई कोड न बदलें? क्या एसक्यूएल सर्वर कहने का कोई तरीका है (या कोई भी collation) जो एक स्ट्रिंग को वास्तव में वास्तविकता में देखता है?
पीएस: मैं SQL सर्वर 2008 आर 2 का उपयोग कर रहा हूं।
'माईफिल्ल्डनाम' का किस प्रकार का है? डीबी संयोजन को बदलना मौजूदा कॉलम के लिए कुछ नहीं करता है, fyi। – usr
वैसे आप क्या उम्मीद करते हैं, '@ टीएसक्यूएल'' वर्चर (8000) 'है? –
ओएमजी! मेरे कोड का केवल एक हिस्सा कॉपी किया गया है (मैं इसके बारे में कभी नहीं सोचता)। दोस्त धन्यवाद। – Jupiter