Maison >base de données >tutoriel mysql >Comment insérer ou mettre à jour atomiquement une ligne dans T-SQL à l'aide de @@rowcount ?
Insertion de ligne atomique avec vérification d'existence dans T-SQL
Votre besoin est de développer une procédure stockée T-SQL qui met à jour atomiquement une ligne dans un tableau. Si la ligne n'existe pas, elle doit être insérée dans une transaction, garantissant ainsi la fiabilité et l'atomicité. Vous devez utiliser @@rowcount efficacement pour déterminer si la ligne existe déjà.
Implémentation suggérée
Voici une version modifiée de votre code qui intègre la suggestion approche :
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
Explication :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!