回答

收藏

检查一行是否存在,如果该行不存在,则插入

技术问答 技术问答 316 人阅读 | 0 人回复 | 2023-09-12

我需要写一个 T-SQL 存储过程更新表中的一行。如果不存在,请插入。所有这些步骤都包含在一个事务中。
/ y4 J$ ?, r  y% j1 A' y这是一个预订系统,所以它必须是和可靠的原子。如果事务已经提交,航班已经预订,必须返回 true。
" d1 z! X0 M! N3 z/ S% z8 t6 {我是T-SQL 的新手,不确定怎么用@@rowcount. 这是我到目前为止写的。我在正确的路上吗?我相信这对你来说是一个简单的问题。
. D. Y) {" V; h" ?
    -- 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?)* T5 R/ E$ _0 o4 ]* L' \$ {
               & d1 }: W* C0 k9 e% B% e
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则