সমস্ত ডেটা (লগইন, লিঙ্কযুক্ত সার্ভার, এসকিউএল এজেন্ট জবস, ডিবি মেল সেটিংস, ইত্যাদি) রফতানি করা এবং ইনস্ট্যান্স-স্তরের ডেটা পুনর্নির্মাণ করা , এবং ব্যবহারকারীর সমস্ত ডেটা পুনরায় লোড করা অনেক কাজ। এবং ALTER DATABASE
এত কিছুর পরেও, এখনও কোনও গ্যারান্টি নেই যে আপনি কোনও ডাটাবেজের ডিফল্ট কোলেশন আপডেট করতে পারবেন কারণ বেশ কয়েকটি শর্ত রয়েছে যা অপারেশনটি সম্পূর্ণ হতে বাধা দেবে ( বিশদ জন্য ডকুমেন্টেশনের "ডেটাবেস কোলেশন পরিবর্তন" বিভাগটিALTER DATABASE
দেখুন) ।
তবে একটি অননুমোদিত পদ্ধতি রয়েছে যা অনেক সহজ। মূল অসুবিধা হ'ল এটি অসমর্থিত। এটি এমনটি বলার অপেক্ষা রাখে না যে কোনও কিছু ভুল হয়ে যাবে, ঠিক এটি যদি কিছু হয় তবে মাইক্রোসফ্ট এটিকে ঠিক করতে সহায়তা করবে না (কারণ তারা কখনই গ্যারান্টি দেয় না যে এটি কার্যকর হবে)।
আমি যে পদ্ধতিটির কথা বলছি sqlservr.exe
তা -q {new_collation_name}
স্যুইচ দিয়ে চলছে । এটির চেয়ে আরও কিছু আছে তবে এটি মূল ধারণা। এই পদ্ধতিটি কেবলমাত্র সিস্টেম মেটা-ডেটা আপডেট করে, যার সুবিধাগুলি এবং পরিণতিগুলি রয়েছে, যার প্রধানটি হ'ল:
সুবিধাগুলি
- বেশ দ্রুত
ALTER DATABASE
কাজ করা থেকে বাধা দেয় এমন সীমাবদ্ধতাগুলিকে বাইপাস করুন
- লোকেরা ড্রপ এবং পুনরায় তৈরি করতে বছরের পর বছর ধরে যে কোনও স্ক্রিপ্টের চেয়ে সম্ভবত আরও সঠিক accurate
অপূর্ণতা
- কিছু ভুল হলে অসমর্থিত
VARCHAR
তথ্য করতে , পরিবর্তন করলে কোড পৃষ্ঠা পুরাতন এবং নতুন collations মধ্যে ভিন্ন, এবং 128 মান দিয়ে অক্ষর - 255 (0x80 - 0xFF) বিদ্যমান, এবং যারা অক্ষর নতুন কোডের উপর একই মান সঙ্গে একই চরিত্র উপস্থিত না থাকার পাতা। সুতরাং ডেটা ক্ষতির সম্ভাবনা রয়েছে এবং এই অবস্থার অস্তিত্ব নেই তা নিশ্চিত করার জন্য আপনার ডেটা প্রথমে গবেষণা করা দরকার। তবে এর অর্থ হ'ল কেবলমাত্র অক্ষরগুলির সাথে 0 - 127 এর মান রয়েছে এমন প্রচুর কেস রয়েছে যা কোডের পৃষ্ঠায় পরিবর্তন হলেও কোনও বিপদে নেই।
- ব্যবহারকারী-সংজ্ঞায়িত সারণী প্রকারগুলি (ইউডিটিটি) এড়ানো হয় এবং ম্যানুয়ালি আপডেট করা দরকার।
sqlservr.exe -q
পদ্ধতিটি কী করে এবং কী করে না তার বিশদ বিবরণের জন্য (কীভাবে বিভিন্ন স্তরে কোলেশনগুলি কীভাবে কাজ করে তার বিশদ এবং কীভাবে নজর রাখার সম্ভাব্য সমস্যাগুলি সহ) সহ দয়া করে আমার পোস্টটি দেখুন:
সমস্ত ব্যবহারকারীর ডেটাবেসগুলিতে ইনস্ট্যান্স, ডেটাবেস এবং সমস্ত কলামের সংকলন পরিবর্তন করা: কীভাবে সম্ভবত ভুল হতে পারে?
(সিস্টেম ডাটাবেস অন্তর্ভুক্ত রয়েছে: শুধুমাত্র উদাহরণস্বরূপ পরিবর্তন করতে master
, model
, msdb
, এবং tempdb
) এবং এক বা একাধিক ডাটাবেস (কিন্তু সব ডাটাবেস), কেবল ডাটাবেসের (গুলি) বিচ্ছিন্ন যে আপনি এই অপারেশন থেকে বাদ দেওয়ার বিষয়ে, এবং তারপর তাদের পুনঃ-সংযুক্ত একবার কোলেশন আপডেট সম্পূর্ণ হয়।