我需要编写一个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?)
3 回答
- 3 回答
- 0 关注
- 623 浏览
添加回答
举报
0/150
提交
取消