2011-02-28 9 views
5

क्या SQL सर्वर 2008 में कौन से रिकॉर्ड डबल बाइट वर्ण हैं यह बताने का कोई तरीका है?SQL सर्वर 2008 खोज डबल बाइट वर्ण

उदाहरण के लिए, यदि चीन दायर किया गया है तो मैं एक टेबल में चीनी, कोरियाई और जापानी में सभी रिकॉर्ड पूछना चाहता हूं, मैं इसे कैसे कर सकता हूं?

आपका इनपुट वास्तव में सराहना की है।

मुझे लगता है कि मैंने आपको लोगों को भ्रमित कर दिया होगा। सब कुछ nvarchar में संग्रहीत किया जाता है। कुछ रिकॉर्ड चीनी में हैं, कुछ कोरियाई में हैं, कुछ स्पेनिश और अधिक में हैं। हम इसके बारे में कुछ करने के लिए चीनी, जापानी और कोरियाई रिकॉर्ड जानना चाहते हैं। क्या इसका कोई मतलब है?

+1

द्वारा 'अगर records' आप' rows' तो मतलब आपके पास 'nvarchar()' कॉलम के लिए ** सभी ** पंक्तियों में डबल बाइट वर्ण होंगे। 'हैलो' और '你好' दोनों को डबल बाइट वर्ण से संग्रहित किया जाता है। –

+0

क्या आप कांजी और अन्य मुख्य रूप से एशियाई भाषाओं के लिए उपयोग किए जाने वाले पुराने समय के 'डबल बाइट कैरेक्टर सेट' (डीबीसीएस) के बारे में पूछ रहे हैं, या एमएस का यूनिकोड ('नेशनल टेक्स्ट') का उपयोग? – DaveE

उत्तर

5

वहाँ एक रास्ता बताने के लिए जो रिकॉर्ड एसक्यूएल सर्वर 2008 में डबल बाइट वर्ण हैं है ?

आप इस का उपयोग कर सकते हैं - डबल-बाइट वर्ण एक एकल बाइट करने के लिए कम नहीं किया जा सकता है, तो आप रिकॉर्ड में CJK है:

select * from tbl 
where convert(nvarchar(max),convert(varchar(max),somecolumn)) != somecolumn 
+0

ऐसा लगता है कि आपकी विधि काम करती है। मैं और जांच करूंगा। बहुत बहुत धन्यवाद। – Percy

0

अगर मैं तुम्हें समझ में है, तो यह इस तरह एक संग्रहीत proc के रूप में सरल हो सकता है:

DECLARE @SearchString nvarchar(MAX) 
... 
SELECT * FROM MyTable 
WHERE Country = '' and SearchField = @SearchString 

मतलब यह है कि SearchField nvarchar है।

यदि आपके पास nvarchar कॉलम है तो वहां की सभी जानकारी डबल बाइट होगी।

आप सभी स्तंभों उस प्रकार nvarchar के हैं लगता है तो आप नीचे दिए गए क्वेरी का उपयोग कर सकते कोशिश कर रहे हैं:

SELECT OBJECT_NAME(col.OBJECT_ID) as [TableName], col.[name] as [ColName], typ.[name] 
FROM sys.all_columns col 
INNER JOIN sys.types typ 
ON col.user_type_id = typ.user_type_id 
WHERE col.user_type_id = 231 
+1

मुझे लगता है कि "डबल बाइट चार" का अर्थ है यूनिकोड/'nvarchar', क्योंकि वे प्रति चरित्र डेटा स्थान दो बार लेते हैं। – JNK

+0

हाँ, मुझे भी ऐसा लगता है। क्या आप इस सवाल को उसी तरह पढ़ते हैं? –

+0

मुझे लगता है कि वह यह जानना चाहता है कि 'वर्चर' के विपरीत कौन से फ़ील्ड 'nvarchar' हैं, यानी यूनिकोड वर्णों का समर्थन कर सकते हैं। – JNK