我需要編寫一個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 FALSEIF @@ROWCOUNT = 0 BEGIN INSERT INTO Bookings ... (omitted)END-- END TRANSACTION (HOW TO DO?)-- Return TRUE (How to do?)
檢查是否存在行,否則插入
BIG陽
2019-11-21 15:20:02