আমার একটি টি-এসকিউএল সঞ্চিত পদ্ধতি লিখতে হবে যা একটি সারণীতে একটি সারি আপডেট করে। যদি সারিটি বিদ্যমান না থাকে তবে এটি sertোকান। এই সমস্ত পদক্ষেপ একটি লেনদেন দ্বারা আবৃত।
এটি একটি বুকিং সিস্টেমের জন্য, সুতরাং এটি অবশ্যই পারমাণবিক এবং নির্ভরযোগ্য হবে । লেনদেন প্রতিশ্রুতিবদ্ধ ছিল এবং ফ্লাইট বুক করা থাকলে এটি অবশ্যই সত্য প্রত্যাবর্তন করতে হবে।
আমি টি এসকিউএল-এ নতুন এবং কীভাবে ব্যবহার করব সে সম্পর্কে নিশ্চিত নই @@rowcount
। এটি আমি এখনও অবধি লিখেছি। আমি কি সঠিক রাস্তায় আছি? আমি নিশ্চিত আপনার পক্ষে সহজ সমস্যা is
-- BEGIN TRANSACTION (HOW TO DO?)
UPDATE Bookings
SET TicketsBooked = TicketsBooked + @TicketsToBook
WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook)
-- Here I need to insert only if the row doesn't exists.
-- If the row exists but the condition TicketsMax is violated, I must not insert
-- the row and return FALSE
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO Bookings ... (omitted)
END
-- END TRANSACTION (HOW TO DO?)
-- Return TRUE (How to do?)