테이블의 행을 업데이트하는 T-SQL 저장 프로 시저를 작성해야합니다. 행이 존재하지 않으면 삽입하십시오. 이 모든 단계는 트랜잭션으로 래핑됩니다.
이것은 예약 시스템 용이므로 원자적이고 신뢰할 수 있어야합니다 . 트랜잭션이 커밋되고 항공편이 예약 된 경우 true를 반환해야합니다.
난 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?)