'কল্টেট এসকিউএল_ল্যাটিন 1_ জেনারাল_সিপি 1_সিআই_এএস' কী করবে?


134

নিচের মত এসকিউএল সার্ভারে ডাটাবেস তৈরি করতে আমার একটি এসকিউএল কোয়েরি রয়েছে:

create database yourdb
on
( name = 'yourdb_dat',
  filename = 'c:\program files\microsoft sql server\mssql.1\mssql\data\yourdbdat.mdf',
  size = 25mb,
  maxsize = 1500mb,
  filegrowth = 10mb )
log on
( name = 'yourdb_log',
  filename = 'c:\program files\microsoft sql server\mssql.1\mssql\data\yourdblog.ldf',
  size = 7mb,
  maxsize = 375mb,
  filegrowth = 10mb )
COLLATE SQL_Latin1_General_CP1_CI_AS;
go

এটা ঠিক আছে।

এসকিউএল এর বাকি অংশগুলি পরিষ্কার হয়ে গেছে যে আমি এর কার্যকারিতা সম্পর্কে বেশ বিভ্রান্ত COLLATE SQL_Latin1_General_CP1_CI_AS

কেউ কি আমাকে এই ব্যাখ্যা করতে পারেন? এছাড়াও, আমি জানতে চাই যে এইভাবে ডাটাবেস তৈরি করা একটি সেরা অনুশীলন?

উত্তর:


246

এটি সেট করে যে কীভাবে ডাটাবেস সার্ভারটি বাছাই করে (পাঠ্যের টুকরো তুলনা করে)। এক্ষেত্রে:

SQL_Latin1_General_CP1_CI_AS

আকর্ষণীয় অংশে বিভক্ত:

  1. latin1 চরসেট ল্যাটিন 1 ব্যবহার করে সার্ভারটিকে স্ট্রিং ট্রিট করে তোলে, মূলত ascii i
  2. CP1 কোড পৃষ্ঠা 1252 এর জন্য দাঁড়িয়েছে
  3. CI কেস সংবেদনশীল তুলনা তাই 'এবিসি' 'এবিসি' সমান
  4. AS উচ্চারণ সংবেদনশীল, সুতরাং 'ü' 'u' এর সমান হয় না

পিএস আরও বিস্তারিত তথ্যের জন্য অবশ্যই @ সলমন-রুটজকির উত্তরটি পড়তে ভুলবেন না ।


11
এই এবং এর মধ্যে পার্থক্য কী হবে SQL_Latin1_General_CI_AS। বিশেষত, সিপি 1 আমাকে অবাক করে দিয়েছিল।
কাদ

7
@ কাদ: একটি বলে মনে হচ্ছে না SQL_Latin1_General_CI_AS। বরং, একটি আছে Latin1_General_CI_AS। দেখুন SELECT * FROM fn_helpcollations() where name IN ('SQL_Latin1_General_CP1_CI_AS','Latin1_General_CI_AS','SQL_Latin1_General_CI_AS');। বাছাই এবং দুটি কোলেশনের মধ্যে তুলনা সম্পর্কে সূক্ষ্ম পার্থক্য আছে। Olcot.co.uk/sql-bloggs/… দেখুন ।
রিলে মেজর

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

নির্দোষ উত্তর @ ক্রিস!
গৌরব

@ ক্রিস কি এসকিউএল_ল্যাটিন 1_ জেনারাল_সিপি 1_সিআই_এএস-এর জন্য এসকিউএল ২০১৯-তে কোনও ইউটিএফ -8 বিকল্প রয়েছে?
চানকি

72

দয়া করে সচেতন থাকবেন যে গৃহীত উত্তরটি কিছুটা অসম্পূর্ণ। হ্যাঁ, সবচেয়ে বেসিক স্তরে কোলেশন বাছাই পরিচালনা করে। কিন্তু, নির্বাচিত কোলেশন দ্বারা সংজ্ঞায়িত তুলনামূলক বিধিগুলি ব্যবহারকারীর তথ্যের বিরুদ্ধে ব্যবহারকারীর প্রশ্নের বাইরেও অনেক জায়গায় ব্যবহৃত হয়।

যদি "কি করে COLLATE SQL_Latin1_General_CP1_CI_AS?" এর অর্থ "এর COLLATEধারাটি কী করে CREATE DATABASE?", তারপরে:

COLLATE {collation_name}ধারা CREATE DATABASEবিবৃতি ডিফল্ট কোলেশন নির্দিষ্ট করে ডাটাবেজ এবং না সার্ভার; ডাটাবেস-স্তর এবং সার্ভার-স্তরের ডিফল্ট কলশনগুলি বিভিন্ন জিনিস নিয়ন্ত্রণ করে।

সার্ভার (অর্থাত্ ইনস্ট্যান্স) -সামান্য নিয়ন্ত্রণ:

  • সিস্টেম ডেটাবেস জন্য ডাটাবেজ পর্যায়ের কোলেশন: master, model, msdb, এবং tempdb
  • এর ডিবি-স্তরের কোলেশন নিয়ন্ত্রণ করার কারণে tempdbএটি অস্থায়ী সারণীতে (গ্লোবাল এবং স্থানীয়) স্ট্রিং কলামগুলির জন্য ডিফল্ট কোলেশন, তবে টেবিলের ভেরিয়েবল নয়।
  • এর ডিবি-স্তরের কোলেশন নিয়ন্ত্রণ করার কারণে masterএটি সার্ভার-লেভেলের ডেটা যেমন ডাটাবেসের নাম (যেমন nameকলাম ইন sys.databases), লগইন নেম ইত্যাদির জন্য ব্যবহৃত হয় তা কোলিশন is
  • প্যারামিটার / ভেরিয়েবলের নাম পরিচালনা করা
  • কার্সারের নাম পরিচালনা করা
  • GOTOলেবেল হ্যান্ডলিং
  • ক্লজটি COLLATEঅনুপস্থিত থাকাকালীন নতুন নির্মিত ডেটাবেসগুলির জন্য ব্যবহৃত ডিফল্ট কোলেশন

ডাটাবেস-স্তর নিয়ন্ত্রণ:

  • ডিফল্ট কোলেশন নব নির্মিত স্ট্রিং কলামের জন্য ব্যবহৃত ( CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, এবং NTEXT- কিন্তু ব্যবহার করবেন না TEXTবা NTEXT) যখন COLLATEদফা কলাম সংজ্ঞা থেকে অনুপস্থিত। এটি উভয় CREATE TABLEএবং ALTER TABLE ... ADDবিবৃতি জন্য যায় ।
  • স্ট্রিং ল্যাটারাল (যেমন 'some text') এবং স্ট্রিং ভেরিয়েবল (অর্থাত্ @StringVariable) এর জন্য ডিফল্ট কোলেশন ব্যবহৃত হয় । স্ট্রিং এবং ভেরিয়েবলগুলি অন্যান্য স্ট্রিং এবং ভেরিয়েবলের সাথে তুলনা করার সময় এই কলেজটি কেবলমাত্র ব্যবহৃত হয়। স্ট্রিং / ভেরিয়েবলকে কলামগুলির সাথে তুলনা করার পরে কলামের কলেশন ব্যবহার করা হবে।
  • ডাটাবেস-স্তরের মেটা-ডেটা, যেমন বস্তুর নাম (যেমন sys.objects), কলামের নাম (যেমন sys.columns), সূচকের নাম (যেমন sys.indexes), ইত্যাদির জন্য ব্যবহৃত কোলেশন
  • ডাটাবেস-স্তরের অবজেক্টের জন্য ব্যবহৃত কোলেশন : সারণী, কলাম, সূচিপত্র ইত্যাদি

এছাড়াও:

  • ASCII একটি এনকোডিং যা 8-বিট (সাধারণ ব্যবহারের জন্য; প্রযুক্তিগতভাবে "ASCII" অক্ষরের মান 0 - 127 সহ 7-বিট, এবং "ASCII এক্সটেন্ডেড" অক্ষরের মান 0 - 255 সহ 8-বিট)। সংস্কৃতি জুড়ে এই গ্রুপটি একই।
  • কোড পৃষ্ঠাটি বর্ধিত এএসসিআইআইয়ের "বর্ধিত" অংশ এবং 128 - 255 মানের জন্য কোন অক্ষর ব্যবহৃত হয় তা নিয়ন্ত্রণ করে each প্রতিটি গ্রুপের মধ্যে এই গ্রুপটি পরিবর্তিত হয়।
  • Latin1"ASCII" এর অর্থ এই নয় যেহেতু স্ট্যান্ডার্ড ASCII কেবল 0 - 127 মানগুলি এবং সমস্ত কোড পৃষ্ঠা (যা এসকিউএল সার্ভারে প্রতিনিধিত্ব করা যেতে পারে এবং এমনকি NVARCHAR) একই অক্ষরের 128 মানগুলিকে মানচিত্র করে।

যদি "কি করে COLLATE SQL_Latin1_General_CP1_CI_AS?" এর অর্থ "এই বিশেষ কোলেশন কী করে?", তারপরে:

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

    উইন্ডোজ কোলিশানগুলি (যাদের নাম দিয়ে শুরু হচ্ছে নাSQL_ ) তারা আরও নতুন, আরও কার্যকরী, একই মানগুলির মধ্যে VARCHARএবং NVARCHARজন্য নিয়মিত বাছাই করে এবং অতিরিক্ত / সংশোধন করা বাছাই করা ওজন এবং বড় হাতের অক্ষর / ছোট হাতের ম্যাপিং সহ আপডেট করা হয়। এসকিউএল সার্ভারের কোলিশনে থাকা এই সম্ভাব্য পারফরম্যান্স সমস্যাগুলিও নেই: ভিচারার এবং এনভিচারার প্রকারগুলি মিশ্রিত করার সময় সূচীর উপর প্রভাব

  • Latin1_General সংস্কৃতি / স্থানীয় হয়।
    • এর জন্য NCHAR, NVARCHARএবং NTEXTডেটা এটি বাছাই এবং তুলনা করার জন্য ব্যবহৃত ভাষাগত নিয়মগুলি নির্ধারণ করে।
    • এর জন্য CHAR, VARCHARএবং TEXTডেটা (কলাম, আক্ষরিক এবং ভেরিয়েবল) এটি নির্ধারণ করে:
      • বাছাই এবং তুলনা করার জন্য ব্যবহৃত ভাষাগত নিয়ম।
      • অক্ষরগুলি এনকোড করতে ব্যবহৃত কোড পৃষ্ঠা। উদাহরণস্বরূপ, Latin1_Generalজোটগুলি কোড পৃষ্ঠা 1252 Hebrewব্যবহার করে , কোলিশগুলি কোড পৃষ্ঠা 1255 ব্যবহার করে।
  • CP{code_page} অথবা {version}

    • এসকিউএল সার্ভারের জোটের জন্য :, CP{code_page}এটি 8-বিট কোড পৃষ্ঠা যা 128 - 255 এর মানগুলিতে মানচিত্র নির্ধারণ করে তা নির্ধারণ করে While 256 টি অক্ষর, এগুলি এসকিউএল সার্ভারের জোটের জন্য উপলব্ধ নয়।
    • উইন্ডোজ কোলেশনগুলির জন্য :, {version}সমস্ত কোলেশন নামগুলিতে উপস্থিত না থাকাকালীন, এসকিউএল সার্ভার সংস্করণকে বোঝায় যেখানে কোলেশনটি চালু হয়েছিল (বেশিরভাগ অংশে)। নামে কোনও সংস্করণ নম্বরবিহীন উইন্ডোজ কোলিশনগুলি সংস্করণ 80(যার অর্থ এসকিউএল সার্ভার 2000 এটির সংস্করণ 8.0)। এসকিউএল সার্ভারের সমস্ত সংস্করণ নতুন কলশন নিয়ে আসে না, তাই সংস্করণ সংখ্যার ফাঁক রয়েছে। কিছু রয়েছে যা 90(এসকিউএল সার্ভার ২০০ for-এর, যা সংস্করণ 9.0), বেশিরভাগগুলি 100(এসকিউএল সার্ভার ২০০৮, সংস্করণ 10.0 এর জন্য) এবং একটি ছোট সেট রয়েছে 140(এসকিউএল সার্ভার 2017, সংস্করণ 14.0 এর জন্য)।

      আমি বলেছি "বেশিরভাগ অংশে" কারণ সমাপ্তিগুলি সমাপ্তিগুলি _SCএসকিউএল সার্ভার ২০১২ (সংস্করণ ১১.০) এ প্রবর্তিত হয়েছিল, তবে অন্তর্নিহিত তথ্যটি নতুন ছিল না, তারা কেবল বিল্ট-ইন ফাংশনগুলির জন্য পরিপূরক চরিত্রগুলির জন্য সমর্থন যোগ করেছিল। সুতরাং, সেগুলি শেষ সংস্করণ 90এবং 100কোলেশনগুলির জন্য বিদ্যমান তবে কেবল এসকিউএল সার্ভার ২০১২ সালে শুরু হবে।

  • এর পরে আপনার সংবেদনশীলতা রয়েছে, যা নীচের যে কোনও সংমিশ্রণে থাকতে পারে, তবে সর্বদা এই ক্রমে নির্দিষ্ট করা থাকে:
    • CS= কেস-সংবেদনশীল বা CI= কেস-সংবেদনশীল
    • AS= অ্যাকসেন্ট-সংবেদনশীল বা AI= অ্যাকসেন্ট-সংবেদনশীল
    • KS = কানা টাইপ-সংবেদনশীল বা অনুপস্থিত = কানা টাইপ-সংবেদনশীল
    • WS = প্রস্থ সংবেদনশীল বা অনুপস্থিত = প্রস্থ সংবেদনশীল
    • VSS = প্রকরণ নির্বাচন সংবেদনশীল (কেবলমাত্র 140 টি কোলিশনের সংস্করণে উপলব্ধ) বা অনুপস্থিত = প্রকরণ নির্বাচনকারী সংবেদনশীল
  • Lastচ্ছিক শেষ টুকরা:

    • _SCশেষে "পরিপূরক চরিত্র সমর্থন" এর অর্থ। "সমর্থন" কেবলমাত্র অন্তর্নির্মিত ফাংশনগুলি সরোগেট জোড়কে কীভাবে ব্যাখ্যা করে (যা ইউটিএফ -16 এ পরিপূরক অক্ষরগুলি কীভাবে এনকোড করা হয়) কীভাবে তা প্রভাবিত করে। ছাড়া _SCশেষে (অথবা _140_মাঝখানে), বিল্ট-ইন ফাংশন একটি একক সম্পূরক চরিত্র দেখতে পাচ্ছি না, কিন্তু এর পরিবর্তে দুই অর্থহীন কোড পয়েন্ট অর্জন করে নিজেদের ভাড়াটে যুগল আপ করতে দেখুন। এই সমাপ্তিটি কোনও নন-বাইনারি, সংস্করণ 90 বা 100 কোলিশনে যুক্ত করা যেতে পারে।
    • _BINবা _BIN2শেষে অর্থ "বাইনারি" বাছাই এবং তুলনা। ডেটা এখনও একইভাবে সঞ্চিত আছে, তবে কোনও ভাষাগত নিয়ম নেই। এই সমাপ্তি 5 টির সংবেদনশীলতার কোনওটির সাথেই কখনও মিলিত হয় না _SC_BINএটি পুরানো শৈলী এবং _BIN2এটি আরও নতুন, আরও নির্ভুল শৈলী। যদি এসকিউএল সার্ভার 2005 বা আরও নতুন ব্যবহার করে থাকে তবে ব্যবহার করুন _BIN2_BINএবং এর মধ্যে পার্থক্য সম্পর্কে বিশদের জন্য _BIN2দয়া করে দেখুন: বিভিন্ন বাইনারি কোলেশন (সংস্কৃতি, সংস্করণ এবং বিএন বনাম বিআইএন 2) এর মধ্যে পার্থক্য
    • _UTF8এসকিউএল সার্ভার 2019 হিসাবে একটি নতুন বিকল্প It's এটি একটি 8-বিট এনকোডিং যা ইউনিকোড ডেটা VARCHARএবং CHARডেটাটাইপগুলিতে (তবে TEXTঅবচয়িত ডেটাটাইপ নয়) সংরক্ষণ করার অনুমতি দেয় । এই বিকল্পটি কেবলমাত্র পরিপূরক চরিত্রগুলিকে সমর্থন করে এমন কোলেশনগুলিতে ব্যবহার করা যেতে পারে (অর্থাত্ সংস্করণ 90 বা 100 _SCতাদের সাথে কোলিশেশন এবং 140 সংস্করণে সংস্করণ)। এখানে একটি একক বাইনারি _UTF8কোলেশন ( _BIN2না, _BIN) রয়েছে।

      অনুগ্রহ করে দ্রষ্টব্য: ইউটিএফ -8 পরিবেশ / কোডের সাথে সামঞ্জস্য করার জন্য ডিজাইন / তৈরি করা হয়েছিল যা 8-বিট এনকোডিংয়ের জন্য সেট করা এখনও ইউনিকোড সমর্থন করতে চায়। যদিও সেখানে এমন কিছু পরিস্থিতি রয়েছে যেখানে তুলনায় ইউটিএফ -8 50% পর্যন্ত স্থান সাশ্রয় করতে পারে NVARCHAR, এটি একটি পার্শ্ব-প্রতিক্রিয়া এবং অনেক / সর্বাধিক ক্রিয়াকলাপে পারফরম্যান্সে সামান্য আঘাতের ব্যয় করে। আপনার যদি সামঞ্জস্যের জন্য এটির প্রয়োজন হয় তবে ব্যয়টি গ্রহণযোগ্য। আপনি যদি স্থান-সঞ্চয়ের জন্য এটি চান তবে আপনার আরও ভাল পরীক্ষা এবং পরীক্ষাটি আবার হয়েছিল। পরীক্ষায় সমস্ত কার্যকারিতা এবং কেবলমাত্র কয়েকটি সারি ডেটা রয়েছে includes সতর্কতা অবলম্বন করুন যে সমস্ত কলাম এবং নিজেই ডাটাবেস যখন একটি দিয়ে VARCHARডেটা (কলাম, ভেরিয়েবল, স্ট্রিং লিটারাল) ব্যবহার করছে তখন ইউটিএফ -8 কলশনগুলি সবচেয়ে ভাল কাজ করে_UTF8কোলেশন। এটি সামঞ্জস্যের জন্য এটি যে কেউ ব্যবহার করছেন এটি প্রাকৃতিক অবস্থা, তবে স্থান সঞ্চয়ী হিসাবে এটি ব্যবহার করার প্রত্যাশাকারীদের পক্ষে নয়। নন- কোলেশন বা ডেটা ব্যবহার _UTF8করে VARCHARডেটা দিয়ে কোলাশ ব্যবহার করে ভর্চারের ডেটা মেশানোর সময় সতর্কতা অবলম্বন করুন, কারণ আপনি অদ্ভুত আচরণ / ডেটা ক্ষতির সম্মুখীন হতে পারেন। নতুন ইউটিএফ -8 কোলিশান সম্পর্কে আরও তথ্যের জন্য, দয়া করে দেখুন: এসকিউএল সার্ভারে নেটিভ ইউটিএফ -8 সহায়তা 2019: ত্রাণকর্তা বা মিথ্যা নবী?_UTF8NVARCHAR


5
যদিও আমি এত তথ্য এবং প্রচেষ্টার জন্য এটি উত্সাহিত করেছি, আমার উত্তর অবশ্যই ভুল নয় (ডাটাবেসগুলি ডেটা সঞ্চয় করে, ডাটাবেস সার্ভারগুলি এই ডেটাতে কাজ করে, বাছাই করছে)। আমি সম্পূর্ণ গাণিতিক নির্ভুলতার চেয়ে ব্রেভিটি বেছে নিয়েছিলাম কারণ ওপি সম্ভবত সম্ভাব্য সমস্ত তথ্য নয়, যথেষ্ট পরিমাণে অনুসন্ধান করেছিল।
ক্রিস

4
হাই @ ক্রিস ধন্যবাদ। সত্যি কথা বলতে গেলে, আমি বলিনি যে আপনার উত্তরটি সম্পূর্ণ ভুল ছিল, কেবলমাত্র ভীতিজনকভাবে অসম্পূর্ণ। আমি আশাবাদী এটি স্পষ্ট করতে আপডেট করেছি। আপনি যা বলছেন তা পেয়েছি, তবে ওপি জিজ্ঞাসা করেছিল যে এর COLLATEধারাটি কী CREATE DATABASEকরে। আপনি এটি বেশ কয়েকটি কাজের মধ্যে একটি বলেছেন। আপনি কেন ধরে নিলেন যে ওপি কেবল উত্তরটির 10% জানতে চায়? যদি সমস্ত তথ্য উপস্থাপন করা হয় তবে প্রতিটি ব্যক্তি সিদ্ধান্ত নিতে পারে যে এর কতটা নেবে। তবে যদি কেবল কিছু তথ্য দেওয়া হয়, তবে তাদের জন্য পছন্দটি করা হয়েছিল। আমি যতটা সম্ভব তথ্য সরবরাহ করতে পছন্দ করি কারণ এর বেশিরভাগটি সুপরিচিত নয়। (অবিরত)
সলোমন রুটজকি

5
আমি মনে করি আপনি কী বলতে চাইছেন তা আমি দেখছি তবে আমি লক্ষ্য রাখি যে অতিরিক্ত তথ্য না দিয়ে যথেষ্ট তথ্য দেওয়া। খুব বেশি তথ্য দ্রুত অনেক লোকের জন্য জটিল হয়ে যায়। এবং যখন আমি কোনও পরিস্থিতিতে পর্যাপ্ত তথ্য দিতে ব্যর্থ হই তখন আমি ফলোআপ প্রশ্নগুলি আশা করব। (আমিও এই বিষয়ে যথেষ্ট মনোযোগ আশা করিনি)
ক্রিস

8
@ ক্রিস আমি কিছুক্ষণের জন্য "থ্যাঙ্কস" বলার অর্থ দিয়েছি যেমন পরিপক্কতা এবং পেশাদারিত্ব দেখানোর জন্য। আমি কাউকে ব্যক্তিগত ভুল বলে যে তারা ভুল, এবং তারপরে "জটিল" (বা আরও বেশি কঠিন) হয়ে উঠছে সে সম্পর্কে আমি কিছুটা অভ্যস্ত। তবে, আমার প্রতি আপনার পরিমাপকৃত প্রতিক্রিয়া "স্বীকৃত উত্তরটি ভুল " "আমাকে আমার পরিচয়টি কমিয়ে আনতে অনুপ্রাণিত করেছিল এবং কীভাবে সঠিকভাবে এবং উত্পাদনশীলভাবে যোগাযোগ করতে হয় সে সম্পর্কে এখানে অন্যদের কাছে উদাহরণ হিসাবে কাজ করা উচিত 😺
সলোমন রুটজকি

4
আপনি একরকম ইতিবাচক প্রভাব ফেলে শুনে আপনি স্বাগত এবং সুন্দর, তবে আমি "ভুল" হওয়া উপভোগ করি, এটি নতুন জিনিস শেখার সুযোগ খুলে দেয়, যা দুর্দান্ত!
ক্রিস


16

ক্রমসজ্জিত উল্লেখ শব্দ আপনি STRING মানের জন্য অক্ষর সেট এবং নিয়ম (আদেশ, সংঘাত নিয়ম) ধরনের কি ব্যবহার করছেন।

উদাহরণস্বরূপ আপনার ক্ষেত্রে আপনি ল্যাটিন নিয়ম কেস সংবেদনশীল ( সিআই ) এবং অ্যাকসেন্ট সংবেদনশীল ( এএস ) সহ ব্যবহার করছেন

আপনি এই ডকুমেন্টেশন উল্লেখ করতে পারেন


9

এটি ডাটাবেসের জন্য ডিফল্ট কোলেশন নির্দিষ্ট করে। আপনি ডাটাবেসে সারণীতে যে পাঠ্য ক্ষেত্রটি তৈরি করেছেন সেগুলি এই কল্যাশনটি ব্যবহার করবে, আপনি যদি অন্য কোনও নির্দিষ্ট না করে থাকেন।

একটি ডাটাবেসের সর্বদা একটি ডিফল্ট কোলেশন থাকে। আপনি যদি কোনও নির্দিষ্ট না করেন তবে এসকিউএল সার্ভারের উদাহরণের ডিফল্ট কোলেশন ব্যবহৃত হয়।

আপনি যে কোলেশন ব্যবহার করছেন তার নামটি দেখায় যে এটি লাতিন 1 কোড পৃষ্ঠা 1 ব্যবহার করে, এটি কেস সংবেদনশীল (সিআই) এবং অ্যাকসেন্ট সংবেদনশীল (এএস)। এই জোটটি মার্কিন যুক্তরাষ্ট্রে ব্যবহৃত হয়, সুতরাং এটিতে মার্কিন যুক্তরাষ্ট্রে ব্যবহৃত বাছাইয়ের নিয়ম থাকবে।

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


ভুল (আপনি notকোনও কোলেশন নির্দিষ্ট করতে পারবেন না , যদিও আপনি ডিফল্টটি মেনে নিতে পারেন) ভুল (এটি ইউনিকোড ডেটার জন্যও ব্যবহৃত হয়)
রিচার্ড

@Richard ওরফে cyberkiwi: ডকুমেন্টেশন চেক করুন: msdn.microsoft.com/en-us/library/ms176061.aspx নির্ধারণ কোলেশন হয় ঐচ্ছিক। কোড পৃষ্ঠাটি ইউনিকোড ডেটা সংরক্ষণের জন্য ব্যবহৃত হয় না , কারণ এটি 16 বিট ইউনিকোড কোড পয়েন্ট হিসাবে সংরক্ষণ করা হয়, 8 বিট কোড পৃষ্ঠা সূচক হিসাবে নয়।
গুফা

আমি আপনার উত্তরটি ভুল পড়েছি, তবে এটি এখনও ভুল। একটি ডেটাবেজে সর্বদা একটি ডিফল্ট কোলেশন থাকে = SERVER কোলেশন , বিশেষত নয় Latin1_General_CI_AS। এখন আমি এটি ভুল পড়েছি কারণ আমি অর্ধেকটি বিবৃতিটি সার্ভারের কোলেশন সম্পর্কে বলে আশা করি যার জন্য ইউআই-তে ডিফল্ট গ্রহণযোগ্যতা প্রয়োজন require 2nd বিন্দু জন্য, আপনি বলে মনে হচ্ছে পরোক্ষভাবে যে কোলেশন করা হয় না ইউনিকোড ডেটা বাছাই (যদিও আপনার কাছ থেকে সুইচ করার জন্য ব্যবহার করা sortingথেকে storingগত 2 বাক্য)। ইউনিকোড পাঠ্য ডেটাও কোলিশ মেনে চলে।
রিচার্ডকিউই

@ রিচার্ড ওরফে সাইবারকিউই: আমি যে ডকুমেন্টের সাথে লিঙ্ক করেছি তার সাথে মিল রেখে আমি ডিফল্ট কোলেশন সম্পর্কে অনুচ্ছেদটি পরিবর্তন করেছি। (এটি সার্ভারের সংস্করণের উপর নির্ভর করে পৃথক।) দ্বিতীয় বিষয়টির বিষয়ে, আমি কীভাবে এটি আরও পরিষ্কার করতে পারি তা দেখতে পাচ্ছি না। পাঠ্যটিতে বলা হয়েছে যে অ-ইউনিকোড ডেটা সংরক্ষণ করার সময় কোড পৃষ্ঠাটি ব্যবহৃত হয় । কোনও কোড পৃষ্ঠা বাছাই নির্ধারণ করতে ব্যবহার করা হয় না, ইউনিকোড ডেটা বা অ-ইউনিকোড ডেটার জন্যও নয়।
গুফা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.