kema

Untitled

Feb 15th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.82 KB | None | 0 0
  1. CREATE PROCEDURE usp_PurchaseTicket(@CustomerID INT, @FlightID INT, @TicketPrice DECIMAL(8, 2), @Class VARCHAR(6), @Seat VARCHAR(5))
  2. AS
  3.     BEGIN
  4.         BEGIN TRAN
  5.         DECLARE @MaxTicketID INT = ISNULL((SELECT MAX(TicketID) FROM Tickets),0)+1;
  6.         DECLARE @Balance  DECIMAL(8, 2) = (
  7.                                             SELECT c.Balance
  8.                                               FROM CustomerBankAccounts AS c
  9.                                              WHERE c.CustomerID=@CustomerID
  10.                                             )
  11.         INSERT INTO Tickets VALUES(@MaxTicketID, @TicketPrice, @Class, @Seat, @CustomerID, @FlightID)
  12.         UPDATE CustomerBankAccounts
  13.            SET Balance = Balance-@TicketPrice
  14.          WHERE CustomerID=@CustomerID
  15.  
  16.             IF (@Balance< @TicketPrice OR @Balance IS NULL)
  17.                BEGIN
  18.                     RAISERROR('Insufficient bank account balance for ticket purchase.', 16,1)
  19.                     ROLLBACK
  20.                END
  21.                 ELSE
  22.                 BEGIN
  23.                     COMMIT
  24.                 END
  25. END
Advertisement
Add Comment
Please, Sign In to add comment