Advertisement
Guest User

Untitled

a guest
Feb 16th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.79 KB | None | 0 0
  1. CREATE PROCEDURE usp_SwitchRoom(@tripId INT, @targetRoomId INT)
  2. AS
  3. BEGIN
  4.     DECLARE @hotelId INT = (SELECT TOP(1)
  5.         r.HotelId
  6.     FROM Trips AS t
  7.     JOIN Rooms AS r ON r.Id = t.RoomId
  8.     WHERE t.Id = @tripId)
  9.  
  10.     DECLARE @targetHotel INT = (SELECT TOP(1)
  11.         HotelId
  12.     FROM Rooms
  13.     WHERE Id = @targetRoomId)
  14.  
  15.     IF(@HotelId != @targetHotel)
  16.         BEGIN
  17.             RAISERROR('Target room is in another hotel!', 16, 1)
  18.             RETURN
  19.         END
  20.  
  21.     DECLARE @accountOnTrip INT = (SELECT
  22.         COUNT(*)
  23.     FROM AccountsTrips
  24.     WHERE TripId = @tripId)
  25.  
  26.     DECLARE @roomBeds INT = (SELECT TOP(1)
  27.         *
  28.     FROM Rooms
  29.     WHERE Id = @targetRoomId)
  30.  
  31.     IF (@accountOnTrip > @roomBeds)
  32.         BEGIN
  33.             RAISERROR('Not enough beds in target room!', 16, 1)
  34.             RETURN
  35.         END
  36.  
  37.         UPDATE Trips
  38.         SET RoomId = @targetRoomId
  39.         WHERE Id = @tripId
  40.    
  41. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement