我需要編寫一個(gè)T-SQL存儲(chǔ)過程來更新表中的一行。如果該行不存在,則將其插入。所有這些步驟都由事務(wù)包裝。這是用于預(yù)訂系統(tǒng)的,因此它必須是原子性和可靠的。如果已提交交易并預(yù)訂了航班,則必須返回true。我是T-SQL的新手,不確定如何使用@@rowcount。這就是我到目前為止所寫的。我在正確的道路上嗎?我相信這對(duì)您來說是一個(gè)簡(jiǎn)單的問題。-- 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陽(yáng)
2019-11-21 15:20:02