T-SQL 中帶有存在性檢查的原子行插入
您的要求是開發一個以原子方式更新行的T -SQL 預存程序在一個表格中。如果該行不存在,則應將其插入事務中,以確保可靠性和原子性。您需要有效地利用 @@rowcount 來確定該行是否已存在。
建議的實作
這是程式碼的修改版本,其中包含建議的實作方法:
BEGIN TRANSACTION; IF EXISTS (SELECT 1 FROM Bookings WHERE FlightId = @Id) BEGIN UPDATE Bookings SET TicketsBooked = TicketsBooked + @TicketsToBook WHERE FlightId = @Id AND TicketsMax >= (TicketsBooked + @TicketsToBook); END ELSE BEGIN INSERT INTO Bookings ... (omitted); END /* Remaining transaction logic */ COMMIT TRANSACTION; IF @@ERROR = 0 BEGIN RETURN TRUE; -- Return success if no errors occurred END ELSE BEGIN RETURN FALSE; -- Return failure in case of errors END
解釋:
以上是如何使用 @@rowcount 在 T-SQL 中自動插入或更新行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!