Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hey Guys I'm stuck on creating two remaining simple triggers Like a delete row on student table or update room or join and update etc

Hey Guys I'm stuck on creating two remaining simple triggers Like a delete row on student table or update room or join and update etc on the bottom of my sql code. If anyone can give me a hand with that an maybe help me correct any errors I would appreciate all the help I can get. This is a final project I'm turning in and I would mind any help I can get reviewing it. Thank you all very much for taking the time to assist. --Create database statement Create database AdoptABook

CREATE TABLE Person ( PersonID int IDENTITY NOT NULL, FirstName varchar(50) NOT NULL, LastName varchar(50) NOT NULL, Email varchar(50) NOT NULL, PhoneNumber varchar(15) NULL, CONSTRAINT PersonID_PK PRIMARY KEY (PersonID));

CREATE TABLE Employee ( EmployeeID int IDENTITY NOT NULL, Position varchar(50) NOT NULL, PersonID int NOT NULL, CONSTRAINT EmployeeID_PK PRIMARY KEY (EmployeeID), CONSTRAINT PersonID_FK FOREIGN KEY (PersonID) REFERENCES Person (PersonID));

CREATE TABLE Student ( StudentID int IDENTITY NOT NULL, SchoolID char(9) NOT NULL, PersonID int, CONSTRAINT StudentID_PK PRIMARY KEY (StudentID));

CREATE TABLE Inventory ( InventoryID int IDENTITY NOT NULL, Status varchar(20) NULL, CONSTRAINT InventoryID_PK PRIMARY KEY (InventoryID));

CREATE TABLE Holds ( HoldID int IDENTITY NOT NULL, InventoryID Int, StudentID Int, TimeOfRequest date NULL, CONSTRAINT HoldID_PK PRIMARY KEY (HoldID), CONSTRAINT InventoryID_FK FOREIGN KEY (InventoryID) REFERENCES Inventory (InventoryID), CONSTRAINT StudentID_FK FOREIGN KEY (StudentID) REFERENCES Student (StudentID));

CREATE TABLE Payment ( PayID int IDENTITY NOT NULL, PaymentMethod varchar(6) NOT NULL, DateOfPurchase date NULL, CONSTRAINT PayID_PK PRIMARY KEY (PayID));

CREATE TABLE Course ( CourseID int IDENTITY NOT NULL, CourseTitle varchar(100) NOT NULL, CourseTypeID varchar(6) NOT NULL, CRN int NOT NULL, CONSTRAINT CourseID_PK PRIMARY KEY (CourseID));

CREATE TABLE BookPlate ( BookPlateID int IDENTITY NOT NULL, Price decimal(19, 0) NOT NULL, CourseID int, PayID int, StudentID int, CONSTRAINT BookPlateID_PK PRIMARY KEY (BookPlateID), CONSTRAINT CourseID_FK FOREIGN KEY (CourseID) REFERENCES Course (CourseID), CONSTRAINT PayID_FK FOREIGN KEY (PayID) REFERENCES Payment (PayID));

Create TABLE Book ( BookID int IDENTITY NOT NULL, ISBN varchar(13) NOT NULL, BookTitle varchar(100) NOT NULL, Edition varchar(50) NULL, Author varchar(100) NULL, CourseID int, BookPlateID int, InventoryID int, CONSTRAINT BookID_PK PRIMARY KEY (BookID), CONSTRAINT BookPlateID_FK FOREIGN KEY (BookPlateID) REFERENCES BookPlate (BookPlateID));

---------------------------------------------------------------- ---------CREATE INDEXES-----------------------------------------

CREATE INDEX IX_Book_CourseID ON Book (CourseID);

CREATE INDEX IX_BookPlate_StudentID ON BookPlate (StudentID);

CREATE INDEX IX_Course_CourseID ON Course (CourseID);

CREATE INDEX IX_Book_ISBN ON Book (ISBN); ---SET DATABASE TABLES---------/

----------------------------/ -------Sequence Statement

CREATE SEQUENCE BookIDSequence START WITH 900 INCREMENT BY 1;

----------------------------/ SET IDENTITY_INSERT Person ON;

INSERT INTO person (PersonID, FirstName, LastName, Email, [PhoneNumber]) Values (101, 'Felicia', 'Bye', 'ByeFelicia@Internet.com', '5038886652'), (102, 'Roger', 'Moore', 'RMoore@yahoo.net', '8086654410'), (103, 'Crystal', 'Trump', 'Notrelatedtodaprez@hughesnet.net', '3605203312'), (104, 'Peggy', 'Sue', 'PSue@oit.edu', '5037782245'), (105, 'William', 'Walaby', 'Wwalaby@zenith.org', '5418880874');

SET IDENTITY_INSERT Person OFF; SET IDENTITY_INSERT Employee ON;

INSERT INTO Employee (EmployeeID, Position, PersonID) Values (201, 'Student President', 101), (202, 'Student Vice President', 102), (203, 'Receptionist', 103), (204, 'Club Officer ', 104), (205, 'Money Officer', 105);

SET IDENTITY_INSERT Employee OFF; SET IDENTITY_INSERT Student ON;

INSERT INTO Student (StudentID, SchoolID, PersonID) Values (301,'918445223' ,101), (302, '918775001',102), (303, '918001223',103), (304, '918445330',104), (305, '918550444',105);

SET IDENTITY_INSERT Student OFF; SET IDENTITY_INSERT Inventory ON;

INSERT INTO Inventory (InventoryID, Status) Values (401, 'Reserved'), (402, 'On Hold'), (403, 'Purchased'), (404, 'Reserved'), (405, 'Available');

SET IDENTITY_INSERT Inventory OFF; SET IDENTITY_INSERT Holds ON;

INSERT INTO Holds (HoldID, InventoryID, StudentID, TimeOfRequest) Values

(501, 401, 301, '2018-10-05'), (502, 401, 301, '2018-03-05'), (503, 403, 303, '2018-01-01'), (504, 404, 304, '2018-11-11'), (505, 405, 305, '2019-07-04');

SET IDENTITY_INSERT Holds OFF; SET IDENTITY_INSERT Payment ON;

INSERT INTO Payment (PayID, PaymentMethod, DateOfPurchase) Values (601, 'Cash', '2018-02-04'), (602, 'Paypal', '2018-11-05'), (603, 'Cash', '2018-04-04'), (604, 'Cash', '2018-05-01'), (605, 'Paypal', '2018-06-06');

SET IDENTITY_INSERT Payment OFF SET IDENTITY_INSERT Course ON;

INSERT INTO Course (CourseID, CourseTitle, CourseTypeID, CRN) Values (701, 'Basket Weaving', 'BSW101', '334201'), (702, 'Systems Analysis', 'MIS312', '54670'), (703, 'Business Intelligence', 'MIS410', '47860'), (704, 'Being Awesome', 'BAW101', '66666'), (705, 'Computer Forensics', 'MIS407', '67805');

SET IDENTITY_INSERT Course OFF; SET IDENTITY_INSERT BookPlate ON;

INSERT INTO BookPlate (BookPlateID, CourseID, PayID, StudentID, Price) Values (801, 701, 605, 301, '35'), (802, 702, 601, 302, '65'), (803, 703, 601, 303, '40'), (804, 704, 603, 304, '15'), (805, 705, 604, 305, '50');

SET IDENTITY_INSERT BookPlate OFF; SET IDENTITY_INSERT Book ON;

INSERT INTO Book (BookID, CourseID, ISBN, BookTitle, Edition, Author, BookPlateID, InventoryID) Values (901, 701, '8888666522001', 'Im an basket artist', 'Eighth Edition', 'Sam Engelwood', 801, 401), (902, 702, '7778223167890', 'Making things work', 'Fifth Ediiton', 'Steve Murach', 802, 402), (903, 703, '5678000133298', 'Database Analysis', 'First Edition', 'Lindy Hung', 803, 403), (904, 704, '5590345677878', 'Everything is Awesome', 'Tenth Edition', 'Peggy Brockcamp', 804, 404), (905, 705, '1334008922144', 'Computer Deep Dive', 'Fourth Edition', 'Kris Rosenburg', 805, 405);

SET IDENTITY_INSERT Book OFF;

---------SET Constraints after dataBase is Built

ALTER TABLE Student ADD CONSTRAINT Chk_SchoolID CHECK (SchoolID Like '[198][0-9][0-9][0-9][0-9][0-9][0-9]');

ALTER TABLE Person ADD CONSTRAINT Chk_PhoneNumber CHECK (PhoneNumber like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]');

Select * From Student

Select * From Book

Select * From course

Select * From Employee

Select * From Holds

Select * From Inventory

Select * From Payment

Select * From Person

Select * From BookPlate

--Procedure

CREATE PROC spDisplayStudent AS SELECT StudentID, SchoolID, PersonID FROM Student; GO exec spDisplayStudent

CREATE PROC spAddStudent ( @StudentID int, @SchoolID char(9), @PersonID int ) AS BEGIN TRY Insert Student VALUES (@StudentID, @SchoolID, @PersonID); PRINT'You added some stuff to students GOOD JOB.' END TRY BEGIN CATCH PRINT 'An error showed up. Course failed to add.'; PRINT '5001:' + CONVERT(varchar, ERROR_NUMBER()); PRINT 'Error Message:' + CONVERT(varchar, ERROR_MESSAGE()); END CATCH;

GO

CREATE PROC spUpdatePayment ( @PayID int, @PaymentMethod varchar(6), @DateOfPurchase date ) AS BEGIN TRY IF @PayID = '601' and @DateOfPurchase = '2018-02-04' Update Payment Set @PaymentMethod = 'Cash'

ELSE IF @PayID = '602' and @DateOfPurchase = '2018-11-05' Update Payment Set @PaymentMethod = 'Paypal'

ELSE IF @PayID = '603' and @DateOfPurchase = '2018-04-04' Update Payment Set @PaymentMethod = 'Cash'

ELSE IF @PayID = '604' and @DateOfPurchase = '604' Update Payment Set @PaymentMethod = 'Cash' WHERE PayID = @PayID Print 'Successful payment update.' END TRY BEGIN CATCH PRINT 'ERROR OCCURED, NO UPDATE.'; PRINT '5001:' + CONVERT(varchar, ERROR_MESSAGE()); PRINT 'Error Message:' + convert(varchar, ERROR_MESSAGE()); END CATCH;

GO

Create Proc --Functions Create function fnGetStudents() RETURNS int Begin RETURN (SELECT COUNT(SchoolID) FROM Student); END; print 'Total number of students.' + convert(varchar, dbo.fnGetStudentns());

GO -- Create Function fnHowManyPresidents() Returns int Begin Return (SELECT COUNT (DISTINCT Position) as StudentPresident FROM Employee);

END;

GO

Create function fnBookCount() Returns int Begin Return (Select Count (ISBN) as BookCount from Book); End;

GO

USE AdoptABook GO

Create Trigger DuplicateStudentInfo On Student AFTER INSERT, UPDATE AS Begin If (Select count(*) From Student Join inserted On Student.SchoolID = inserted.SchoolID) > 1 Begin Rollback tran; Throw 50001,'Duplicate value dummy.', 1 End; End;

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Systems Analysis And Synthesis Bridging Computer Science And Information Technology

Authors: Barry Dwyer

1st Edition

0128054492, 9780128054499

More Books

Students also viewed these Databases questions

Question

15.2 Explain the costs associated with employee turnover.

Answered: 1 week ago