আকার নির্বিশেষে অনেক বিকাশকারী এবং অ্যাপ্লিকেশনগুলির মধ্যে এটি এখনও একটি খুব সাধারণ সমস্যা।
দুর্ভাগ্যক্রমে উপরের পরামর্শগুলি সমস্ত পরিস্থিতিতে ঠিক করে না, যেমন ভাগ করা হোস্টিং, আপনি -t272 স্টার্টআপ প্যারামিটার সেট করতে আপনার হোস্টের উপর নির্ভর করতে পারবেন না।
এছাড়াও, যদি আপনার কাছে বিদ্যমান সারণী থাকে যা প্রাথমিক কীগুলির জন্য এই পরিচয় কলামগুলি ব্যবহার করে, তবে এই কলামগুলি ফেলে দেওয়া এবং বিএস সিকোয়েন্সটি কাজের ভিত্তিতে নতুনকে পুনরায় তৈরি করা একটি বিশাল প্রচেষ্টা। সিক্যুয়েন্স ওয়ার্কারআউন্ড কেবলমাত্র যদি আপনি এসকিউএল ২০১২+ তে স্ক্র্যাচ থেকে নতুন টেবিলগুলি ডিজাইন করেন
নীচের লাইনটি হল, আপনি যদি সিকিএল সার্ভার 2008R2 এ থাকেন তবে এটি চালিয়ে যান। সিরিয়াসলি, এটি থাকুন। মাইক্রোসফ্ট স্বীকার না করা পর্যন্ত যে তারা একটি বিশাল বাগ প্রবর্তন করেছে, এটি এখনও স্কেল সার্ভার 2016-এ রয়েছে, ততক্ষণ পর্যন্ত এটির মালিকানা না পাওয়া এবং এটি ফিক্স না করা পর্যন্ত আমাদের আপগ্রেড করা উচিত নয়।
মাইক্রোসফ্ট সরাসরি একটি ব্রেকিং পরিবর্তন আনল, অর্থাৎ তারা একটি ওয়ার্কিং এপিআই ভেঙে দিয়েছে যা আর নকশা অনুযায়ী কাজ করে না, এই কারণে যে তাদের সিস্টেমটি তাদের পুনরায় আরম্ভের সময় তাদের বর্তমান পরিচয়টি ভুলে যায়। ক্যাশে বা কোনও ক্যাশে নেই, এটি অগ্রহণযোগ্য এবং ব্রায়ান নামে মাইক্রোসফ্ট বিকাশকারীকে এটির মালিকানা প্রয়োজন, পরিবর্তে বিশ্বকে জানান যে এটি "নকশা দ্বারা" এবং একটি "বৈশিষ্ট্য"। অবশ্যই, ক্যাচিং একটি বৈশিষ্ট্য, তবে পরবর্তী পরিচয়টি কী হওয়া উচিত তার ট্র্যাক হারাতে এটি কোনও বৈশিষ্ট্য নয়। এটি একটি ফ্রিকেন বিউজি !!!
আমি যে কাজটি ব্যবহার করেছি তা ভাগ করে নেব, কারণ আমার ডিবি শেয়ার্ড হোস্টিং সার্ভারগুলিতে রয়েছে, এছাড়াও আমি আমার প্রাথমিক কী কলামগুলি ছাড়ছি এবং পুনরায় তৈরি করছি না, এটি একটি বিশাল পিআইটিএ হবে।
পরিবর্তে, এটি আমার লজ্জাজনক হ্যাক (তবে মাইক্রোসফ্ট প্রবর্তিত এই পস বাগের মতো লজ্জাজনক নয়)।
হ্যাক / ফিক্স:
আপনার সন্নিবেশ কমান্ডগুলির আগে, প্রতিটি সন্নিবেশ করার আগে আপনার পরিচয়টি পুনরায় পরীক্ষা করুন। এই সংশোধনটি কেবলমাত্র তখনই প্রস্তাবিত হয় আপনার যদি আপনার SQL সার্ভার উদাহরণস্বরূপ প্রশাসকের নিয়ন্ত্রণ না থাকে, অন্যথায় আমি সার্ভার পুনরায় চালু করার পরামর্শ দিই।
declare @newId int -- where int is the datatype of your PKey or Id column
select @newId = max(YourBuggedIdColumn) from YOUR_TABLE_NAME
DBCC CheckIdent('YOUR_TABLE_NAME', RESEED, @newId)
আপনার প্রবেশের ঠিক আগে 3 টি লাইন এবং আপনার যেতে ভাল হওয়া উচিত। এটি প্রকৃতপক্ষে পারফরম্যান্সকে প্রভাবিত করবে না, অর্থাত্ এটি অদম্য।
গুডলাক।
order by ReceiptNo
আপনার ক্যোয়ারিতে যুক্ত হন তবে সেই রেকর্ডগুলি কি আসলেই নেই? আপনি কি নিশ্চিত যে যখন রেকর্ডগুলি sertedোকানো হচ্ছে তখন কোনও ত্রুটি নেই? যদি কোনও রেকর্ড সন্নিবেশ করানোর চেষ্টা করে এবং ব্যর্থত হয় তবে পরিচয় বৃদ্ধি পাবে, রেকর্ড মুছে ফেলা হলে একই জিনিস। রেকর্ডগুলি মুছে ফেলা হলেReceiptNo
রিসেট হয় না। আপনি কি টেবিলের জন্য তৈরি টেবিল পোস্ট করতে পারেনFee
?