ฉันต้องเขียนขั้นตอนการจัดเก็บ T-SQL ที่ปรับปรุงแถวในตาราง หากไม่มีแถวให้ใส่ลงไป ทุกขั้นตอนนี้ห่อด้วยธุรกรรม
นี่เป็นระบบจองดังนั้นมันจะต้องเป็นอะตอมและเชื่อถือได้ จะต้องส่งคืนจริงหากธุรกรรมได้รับการยอมรับและจองเที่ยวบิน
ฉันใหม่กับ T-SQLและไม่แน่ใจว่าจะใช้@@rowcount
อย่างไร นี่คือสิ่งที่ฉันเขียนจนถึงตอนนี้ ฉันอยู่บนถนนที่ถูกต้องหรือไม่? ฉันแน่ใจว่าเป็นปัญหาง่ายสำหรับคุณ
-- 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?)