Je dois écrire une procédure stockée T-SQL qui met à jour une ligne dans une table. Si la ligne n'existe pas, l'insérer. Toutes ces étapes sont enveloppées par une transaction.
Il s'agit d'un système de réservation, il doit donc être atomique et fiable . Il doit retourner vrai si la transaction a été validée et le vol réservé.
Je suis débutant en T-SQL et je ne sais pas comment utiliser @@rowcount
. Voilà ce que j'ai écrit jusqu'à présent. Suis-je sur la bonne voie ? Je suis sûr que c'est un problème facile pour vous. Merci
-- 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?)
1 votes
Duplicata possible de Solutions pour INSERT OR UPDATE sur SQL Server
0 votes
Question connexe - stackoverflow.com/questions/21889843/