2012-04-05 19 views
243

मैंने कुछ सम्मिलित टी-एसक्यूएल प्रश्नों में उपसर्ग एन देखा है। किसी तालिका में मान डालने से पहले कई लोगों ने N का उपयोग किया है।टी-एसक्यूएल स्टेटमेंट में उपसर्ग एन का अर्थ क्या है?

मैंने खोज की, लेकिन मुझे समझ में नहीं आया कि तालिका में किसी स्ट्रिंग को डालने से पहले N को शामिल करने का क्या उद्देश्य है।

INSERT INTO Personnel.Employees 
VALUES(N'29730', N'Philippe', N'Horsford', 20.05, 1), 

उत्तर

300

यह बजाय varchar

आप Transact-SQL कोड कि एक एन उपसर्ग का उपयोग करके चारों ओर तार गुजरता है देखा हो सकता है, nvarchar डेटा प्रकार के रूप में स्ट्रिंग की घोषणा की है। यह दर्शाता है कि बाद की स्ट्रिंग यूनिकोड (एन वास्तव में राष्ट्रीय भाषा चरित्र सेट के लिए खड़ी है) में है। कौन सा का अर्थ है कि आप CHAR, VARCHAR या टेक्स्ट के विपरीत के रूप में NCHAR, NVARCHAR या NTEXT मान पास कर रहे हैं।

from Microsoft के शब्दों में: बिना पत्र एन के साथ

उपसर्ग यूनिकोड वर्ण स्ट्रिंग स्थिरांक एन उपसर्ग, स्ट्रिंग डेटाबेस के डिफ़ॉल्ट कोड पृष्ठ में बदल जाती है। यह डिफ़ॉल्ट कोड पृष्ठ कुछ वर्णों को पहचान नहीं सकता है


आप इन दो डेटा प्रकार के बीच का अंतर जानना चाहते हैं, इस अतः पोस्ट देखें:

What is the difference between varchar and nvarchar?

+1

@ कर्ट का मतलब है कि मैं केवल 'N' का उपयोग करता हूं जब मैं निम्नलिखित डेटाटाइप 'चार्ज, वचर या टेक्स्ट' का उपयोग कर रहा हूं ?? क्योंकि 'एनसीएचएआर, एनवीएआरएआरएआर या एनआईआरई 'मूल रूप से यूनिकोड स्टोर करते हैं, मुझे इसे अलग-अलग जोड़ने की आवश्यकता नहीं है .... क्या यह सच है? – Pritesh

+0

@ प्राइतेश - केवल तभी यदि आप एक डिफ़ॉल्ट कोड पृष्ठ का उपयोग कर रहे हैं जो उपरोक्त बोल्ड टेक्स्ट में उन यूनिकोड वर्णों को पहचान नहीं सकता है। – Todd

+4

@Curt 'डेटाबेस aspfaq com' का लिंक बेहद संदिग्ध वेबसाइटों ('fkref com', 'za1 zeroredirect1 com',' i0z13 trackvoluum com') पर रीडायरेक्ट करता है, जिसे पोर्नोग्राफ़ी, दुर्भावनापूर्ण साइट्स और स्पैम के रूप में हमारे कॉर्पोरेट फ़ायरवॉल द्वारा चिह्नित किया गया है यूआरएल। मैंने aspfaq.com स्वामी से संपर्क किया है और लिंक को हटाने के लिए उत्तर संपादित किया है। – jaume

4

मूल्य यह मानते हुए कि एन केवल हम प्रयोग कर रहे हैं के लिए nvarchar प्रकार ' '

4

मुझे आपको बताएं कि एन' उपसर्ग के साथ क्या परेशान चीज हुई। और मैं 2 दिन लंबा तय करने में सक्षम नहीं हूं।

मेरा डीबी संयोजन SQL_Latin1_General_CP1_CI_AS है।

एक टेबल है। स्तंभ MyCol1Nvarchar

है, लेकिन इस क्वेरी सटीक मूल्य यही कारण है कि मौजूद मैच के लिए विफल रहता है।

SELECT TOP 1 * FROM myTable1 WHERE MyCol1 = 'ESKİ' 

// 0 result 

का उपयोग कर उपसर्ग एन '' यह

SELECT TOP 1 * FROM myTable1 WHERE MyCol1 = N'ESKİ' 

// 1 result - found!!!! 

क्यों ठीक करता है? क्योंकि latin1_general में बड़े बिंदीदार İ नहीं है, इसलिए यह मुझे लगता है कि यह विफल क्यों होता है।

संबंधित मुद्दे