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 중국어 웹사이트의 기타 관련 기사를 참조하세요!