আমি ভাবছিলাম আপনি যদি ইউপিএসআরটি এর ধারণার অনুরূপ কোনও টি-এসকিউএল কমান্ডের মুখোমুখি হয়ে থাকেন? অপারেশন (1) বা (2) ব্যবহার করে আপডেট করুন অপারেশন সম্পাদন করা অত্যধিক জটিল এবং ত্রুটির প্রবণ বলে মনে হচ্ছে।
OBJECTIVE
কাঙ্ক্ষিত রেকর্ডটি (এই ক্ষেত্রে কর্মচারী_আইডি 1) অপরিবর্তিত রয়েছে তা নিশ্চিত করার জন্য প্রয়োজনীয়ভাবে একই প্রশ্নটি দু'বার লিখতে হবে।
প্রেক্ষাপট
- টেবিলের নাম: কর্মচারী
- কর্মচারী আইডি: এর একটি প্রাথমিক কী রয়েছে এবং পরিচয় প্রমাণটি সত্য হিসাবে সেট করা আছে
পছন্দসমূহ
একটি এসকিউএল আপডেট কার্যকর করুন ... পরীক্ষা করুন @@ সারসংক্ষেপ = 0 এবং @@ ত্রুটি = 0 ... প্রয়োজনে এসকিউএল INSERT কার্যকর করুন
- কন: আপনাকে কার্যকরভাবে একই ক্যোরিয়াকে দুবার লিখতে হবে, একবার sertোকানো হিসাবে, একবার আপডেট হিসাবে
- কন: আরও কোড = আরও টাইপ টাইপ করা
- কন: আরও কোড = ত্রুটির জন্য আরও কক্ষ
/programming/1106717/how-to-implement-a-conditional-upsert-stored-procedure "@@ সার্কাউন্ট ব্যবহার করে আপডেট করুন"
- একটি এসকিউএল মার্জ চালানো
- কন: আপনাকে কার্যকরভাবে একই ক্যোরিয়াকে দুবার লিখতে হবে, একবার sertোকানো হিসাবে, একবার আপডেট হিসাবে
- কন: আরও কোড = আরও টাইপ টাইপ করা
- কন: আরও কোড = ত্রুটির জন্য আরও কক্ষ
http://technet.microsoft.com/en-us/library/bb510625.aspx "টি-এসকিউএল মার্জ"
- একটি এসকিউএল ইউপিএসআরটি কার্যকর করুন (বৈশিষ্ট্যটি বিদ্যমান নেই)
- প্রো: আপনি ডেটা থেকে টেবিলের সম্পর্কটিকে একবার সংজ্ঞায়িত করেন (এসকিউএল সার্ভারটি এটি অন্তর্ভুক্ত বা আপডেট নয় কিনা তা নিয়ে উদ্বিগ্ন হতে দিন)
- প্রো: কম কোড = দ্রুত বাস্তবায়ন
- প্রো: কম কোড = কম সম্ভাবনা
উচ্চতর উদাহরণ
ইউপিএসআরটি কর্মী (কর্মচারী_আইডি, কর্মচারী সংখ্যা, চাকরি_শিরোনাম, প্রথম নাম, মাঝামাঝি নাম, উপাধি, সংশোধিত_এটি) ভ্যালু (1, '00 -124AB37 ',' পরিচালক ',' জন ',' টি ',' স্মিথ ', গেটডেট ());
- যদি কর্মচারী_আইডি 1 বিদ্যমান না থাকে: এমএস এসকিউএল একটি INSERT বিবৃতি কার্যকর করে
- যদি কর্মচারী_আইডি 1 বিদ্যমান থাকে: এমএস এসকিউএল কার্যকর করে এবং আপডেট আপডেট
MERGE
সোজা, নমনীয় এবং এটি এসকিউএল স্ট্যান্ডার্ডেরও একটি অংশ। MERGE
এবং অন্যান্য UPSERT
বাস্তবায়নের সাথে আসল সমস্যাটি হ'ল সম্ভাব্য লক এসকেলেশন বা এমনকি ডেডলকগুলি যার সিনট্যাক্সের সাথে কোনও সম্পর্ক নেই।
MERGE
এসকিউএল সার্ভারে বাস্তবায়ন সম্পর্কে একটি ডায়রিটিব ।