লেনদেন-এসকিউএল কোয়েরিতে স্ট্রিংয়ের আগে এন উপসর্গ


41

আপনি কি আমাকে বলবেন, দয়া করে, কখন আমি লেনদেন-এসকিউএল কোয়েরিতে স্ট্রিংয়ের আগে এন উপসর্গ ব্যবহার করব? আমি এমন একটি ডাটাবেস নিয়ে কাজ শুরু করেছি যেখানে আমি কোয়ের মতো ব্যবহার করে কোনও ফলাফল পাই না get

SELECT * FROM a_table WHERE a_field LIKE '%а_pattern%'

যতক্ষণ না আমি প্যাটার্নটি পরিবর্তন করি N'%а_pattern%'। অতীতে আমাকে এই উপসর্গটি কখনই যোগ করতে হয়নি, তাই আমি কৌতূহলী। a_fieldহিসাবে সংজ্ঞায়িত করা হয় nvarchar(255), তবে আমি মনে করি কারণটি অন্য কিছু।

উত্তর:


31

নিম্নলিখিত নিবন্ধগুলিতে প্রশ্ন সম্পর্কে কিছু ভাল তথ্য রয়েছে। সংক্ষিপ্ত উত্তরটি হ'ল আপনি যে ইউনিকোড কলাম এবং নন-ইউনিকোড স্ট্রিং আক্ষরিক ব্যবহার করছেন তার মধ্যে এক ধরণের অমিল রয়েছে। কেবি নিবন্ধ থেকে দেখে মনে হচ্ছে এন উপসর্গ বাদ দেওয়া কিছু ক্ষেত্রে এখনও কাজ করতে পারে তবে এটি ডাটাবেজের কোড পৃষ্ঠা এবং কোলেশন সেটিংসের উপর নির্ভর করবে। এটি আচরণের পরিবর্তনের ব্যাখ্যা দিতে পারে, যদি আপনি পূর্বে ন-উপসর্গ পদ্ধতিতে সাফল্য অর্জন করছিলেন।

https://support.microsoft.com/en-us/kb/239530


6

এটি সূচিত করে যে পরবর্তী স্ট্রিং ইউনিকোডে রয়েছে (এন আসলে জাতীয় ভাষার অক্ষর সেট হিসাবে দাঁড়িয়েছে)। যার অর্থ হ'ল আপনি CHAR, VARCHAR বা TEXT এর বিপরীতে এনসিএইচআর, এনভিচারার বা এনটিএক্সটি মান পাস করছেন। এই তথ্য ধরণের তুলনা করার জন্য নিবন্ধ # 2354 দেখুন।

ইউনিকোড সাধারণত ডাটাবেস অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয় যা ইংরাজী এবং পশ্চিম ইউরোপ কোড পৃষ্ঠাগুলির বাইরে প্রসারিত কোড পৃষ্ঠাগুলির সুবিধার্থে ডিজাইন করা হয়েছে উদাহরণস্বরূপ চীনা হিসাবে। ইউনিকোড ডিজাইন করা হয়েছে যাতে বর্ধিত অক্ষর সেটগুলি এখনও ডাটাবেস কলামগুলিতে "ফিট" করতে পারে।


3

আমি মনে করি এন-প্রিফিক্সটি এসকিএল সার্ভারকে স্ট্রিংটিকে একটি ইউনিকোড মান হিসাবে বিবেচনা করে বলে। এনভারচর কলামগুলি ইউনিকোড হয় তাই এই কলামগুলি অ্যাক্সেস করার সময় আপনার এই সিনট্যাক্সটি ব্যবহার করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.