অস্বীকৃতি: আমি জানি যে এই প্রশ্নটি আগে একশোবার জিজ্ঞাসা করা হয়েছিল, তবে আমি কেবল এটি যাচাই করতে চেয়েছিলাম যে এর আগে আরও সহজ সমাধান না পেয়ে আমি মিস করতে পারি নি এবং এটি করার জন্য প্রচুর কোড লিখেছি / করেছি।
আমাদের সফ্টওয়্যারটি এমন একটি ডাটাবেস ব্যবহার করে যা মূলত এসকিউএল সার্ভার 7 এর জন্য ডিজাইন করা হয়েছিল এবং যেমনটি তৈরি করা সমস্ত স্ক্রিপ্টগুলি কোনও অক্ষর কলামের জন্য কোনও স্পষ্ট সংকলন নির্দিষ্ট করে না। পরিবর্তে, যখন এসকিউএল সার্ভার 2000 বা SQL_Latin1_General_CP1_CI_AS
তারপরে একটি ডাটাবেস তৈরি করা / পুনরুদ্ধার করা হয়, তখন প্রতিটি কলাম ডেটাবেস কোলেশন উত্তরাধিকার সূত্রে প্রাপ্ত হয় (যা এটি এসকিউএল সার্ভার 7 ডিফল্ট হওয়ার পরে ঘটে )।
তাত্ত্বিকভাবে, এটি খুব বেশি গুরুত্ব পাবে না, যেহেতু যদি আমাদের ডাটাবেসটি কোনও গ্রাহকের সার্ভারে স্ক্র্যাচ থেকে তৈরি করা হয়, তবে এটি গ্রাহকের সার্ভার কোলেশন (যা সাধারণত আধুনিক ইনস্টলেশন ডিফল্ট, Latin1_General_CP1_CI_AS
) উত্তরাধিকার সূত্রে প্রাপ্ত হয় এবং সবকিছু ঠিকঠাক কাজ করে। যাইহোক, তারা যখন আমাদের একটি ডেটাবেস ব্যাকআপ প্রেরণ করে তখনই এই দৃশ্যটি ভেঙে যায় বা আমরা তাদের একটি ডেটাবেস ব্যাকআপ প্রেরণ করি এবং কোডটি যখনই টেম্প টেবিলগুলি অ্যাক্সেস করার চেষ্টা করে তখন আমরা বা তারা একটি ভয়ঙ্কর কল্যাশনের সাথে মিল নেই error
আমরা গ্রাহকদের আমাদের এসকিউএল সার্ভার ইনস্ট্যান্স ইনস্টল করতে বা পুনর্নির্মাণের জন্য আমাদের পছন্দের কলেজটি ব্যবহার করার চেষ্টা করেছি, তবে অবশ্যই এটি সর্বদা ঘটে না এবং এটি সর্বদা সম্ভব হয় না।
একটি নতুন ডাটাবেস তৈরি করা এবং ডেটা অনুলিপি করা জড়িত সমাধানগুলি আমাদের পক্ষে সত্যিকার অর্থে ব্যবহারিক নয়, আমাদের একটি "ম্যাজিক ভ্যান্ড" দরকার যা উপাত্তকে বিঘ্নিত না করে সমস্ত কলামগুলিকে স্থানে সংশোধন করার জন্য আমরা একটি লাইভ ডাটাবেসে ওয়েভ করতে পারি। আমি এটি করার জন্য একটি ইউটিলিটি লেখার বিষয়ে ভাবছি, তবে এটি যেহেতু বেশ বড় কাজ হবে তাই কারও কি সহজ সরল পরামর্শ আছে?