Question: CREATE TABLE FLIGHT ( CRAFT_CODE VARCHAR(30), SOURCE VARCHAR(30), DESTINATION VARCHAR(30) ) CREATE TABLE RESERVATIONS ( CRAFT_CODE VARCHAR(30), NO_OF_SEATS INT, CLASS VARCHAR(30) ) -- REQUIREMENT: HOW

CREATE TABLE FLIGHT ( CRAFT_CODE VARCHAR(30), SOURCE VARCHAR(30), DESTINATION VARCHAR(30) )

CREATE TABLE RESERVATIONS ( CRAFT_CODE VARCHAR(30), NO_OF_SEATS INT, CLASS VARCHAR(30) )

-- REQUIREMENT: HOW TO INSERT DATA INTO BOTH FLIGHT TABLE AND RESERVATION TABLE TOGETHER? SINGLE TRANSACTION. CREATE VIEW VW_FLIGHT_RESERVATIONS AS SELECT FLIGHT.CRAFT_CODE, SOURCE, DESTINATION, NO_OF_SEATS, CLASS FROM FLIGHT INNER JOIN RESERVATIONS ON FLIGHT.CRAFT_CODE = RESERVATIONS.CRAFT_CODE

-- ISSUE: INSERT INTO VW_FLIGHT_RESERVATIONS VALUES ('AI01', 'SRC1', 'DEST1', 11, 'ECO') SELECT * FROM VW_FLIGHT_RESERVATIONS

-- SOLUTION: UPDATABLE VIEWS = DML TRIGGERS ON VIEWS CREATE TRIGGER TRIG ON VW_FLIGHT_RESERVATIONS INSTEAD OF INSERT AS BEGIN BEGIN TRANSACTION BEGIN TRY DECLARE @CRAFT_CODE VARCHAR(30) DECLARE @SOURCE VARCHAR(30) DECLARE @DESTINATION VARCHAR(30) DECLARE @NO_OF_SEATS VARCHAR(30) DECLARE @CLASS VARCHAR(30)

SELECT @CRAFT_CODE = CRAFT_CODE FROM INSERTED SELECT @SOURCE = SOURCE FROM INSERTED SELECT @DESTINATION = DESTINATION FROM INSERTED SELECT @NO_OF_SEATS = NO_OF_SEATS FROM INSERTED SELECT @CLASS = CLASS FROM INSERTED

INSERT INTO FLIGHT VALUES (@CRAFT_CODE, @SOURCE, @DESTINATION) INSERT INTO RESERVATIONS VALUES (@CRAFT_CODE, @NO_OF_SEATS, @CLASS) COMMIT END TRY

BEGIN CATCH PRINT 'ERROR DURING DATA DISTRIBUTION' ROLLBACK END CATCH END

INSERT INTO VW_FLIGHT_RESERVATIONS VALUES ('AI01', 'SRC1', 'DEST1', 11, 'ECO') SELECT * FROM VW_FLIGHT_RESERVATIONS SELECT * FROM FLIGHT SELECT * FROM RESERVATIONS

CREATE PROC USP_INSERT_FLIGHTS @CRAFT_CODE VARCHAR(30), @SOURCE VARCHAR(30), @DESTINATION VARCHAR(30), @NO_OF_SEATS INT, @CLASS VARCHAR(30) AS INSERT INTO VW_FLIGHT_RESERVATIONS VALUES (@CRAFT_CODE, @SOURCE, @DESTINATION, @NO_OF_SEATS, @CLASS)

EXEC USP_INSERT_FLIGHTS 'AI02', 'SRC2', 'DEST2', 22, 'ECO' SELECT * FROM VW_FLIGHT_RESERVATIONS SELECT * FROM FLIGHT SELECT * FROM RESERVATIONS

SP > VIEW > TRIGGER > BASE TABLES

-- TASK 1: WRITE A PROCEDURE TO REPORT LIST OF ALL RESERVATIONS FOR A GIVEN FLIGHT (MEANS: YOU NEED TO SUPPLY FLIGHT DYNAMICALLY @ RUNTIME? -- TASK 2: WRITE A PROCEDURE TO REPORT LIST OF AL SUCH FLIGHTS WITH MORE THAN GIVEN COUNT OF RESERVATIONS? -- TASK 3: WRITE A PROCEDURE TO VALIDATE AND INSERT DATA INTO RESERVATIONS IN SUCH A WAY THE MINIMUM SEATS SHOULD BE 10 -- TASK 4: WRITE A PROCEDURE TO VALIDATE AND INSERT DATA INTO FLIGHT TABLE IN SUCH A WAY SOURCE CITY AND DESTINATION CITY ARE DIFFERENT.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!