Heim >Datenbank >MySQL-Tutorial >Wie füge ich eine Zeile in T-SQL mithilfe von @@rowcount atomar ein oder aktualisiere sie?
Atomere Zeileneinfügung mit Existenzprüfung in T-SQL
Ihre Anforderung besteht darin, eine gespeicherte T-SQL-Prozedur zu entwickeln, die eine Zeile atomar aktualisiert in einer Tabelle. Falls die Zeile nicht existiert, sollte sie in eine Transaktion eingefügt werden, um Zuverlässigkeit und Atomizität sicherzustellen. Sie müssen @@rowcount effektiv nutzen, um festzustellen, ob die Zeile bereits vorhanden ist.
Vorgeschlagene Implementierung
Hier ist eine modifizierte Version Ihres Codes, die den vorgeschlagenen Ansatz enthält:
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
Erklärung:
Das obige ist der detaillierte Inhalt vonWie füge ich eine Zeile in T-SQL mithilfe von @@rowcount atomar ein oder aktualisiere sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!