Saya perlu menulis prosedur tersimpan T-SQL yang memperbarui baris dalam sebuah tabel. Jika baris tidak ada, masukkan. Semua langkah ini dibungkus oleh suatu transaksi.
Ini untuk sistem pemesanan, jadi harus atomik dan andal . Ini harus mengembalikan true jika transaksi dilakukan dan penerbangan dipesan.
Saya baru mengenal T-SQL , dan tidak yakin bagaimana cara menggunakannya @@rowcount
. Ini yang saya tulis sampai sekarang. Apakah saya di jalan yang benar? Saya yakin ini adalah masalah yang mudah bagi Anda.
-- 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?)