Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TRIGGER trgBidProcessing ON BIDS INSTEAD OF INSERT
- AS
- --Declare and Set Some Variables
- declare @itemID int, @auctionID int, @bidID int, @bidderID int;
- declare @newbid money, @oldbid money;
- declare @bidTime datetime, @aucFinish datetime;
- SELECT @bidID=bidID FROM inserted;
- SELECT @auctionID=auctionID FROM inserted;
- SELECT @bidderID=bidderID FROM inserted;
- SELECT @itemID=itemID FROM AUCTIONS WHERE auctionID=@auctionID;
- SELECT @bidTime=bidTime FROM inserted;
- SELECT @aucFinish=auctionFinish FROM AUCTIONS WHERE auctionID=@auctionID;
- SELECT @newbid=bidAmount from inserted;
- SELECT @oldbid=HighestBid FROM highestBid WHERE auctionID=@auctionID;
- --Checks Auction is not finished
- IF @bidTime < @aucFinish
- begin
- --bid is higher then previous highest
- IF @newbid > @oldbid
- begin
- INSERT INTO BIDS(auctionID, bidderID, bidTime, bidAmount) VALUES ( @auctionID, @bidderID, @bidTime, @newbid ); --insert bid
- end
- end
- ELSE -- auction has finished
- begin
- --Set Some Variables For Entrys
- DECLARE @paymentID int, @seller int, @payMthd nvarchar(25);
- SELECT @seller=sellerID FROM ITEMS WHERE itemID=@itemID;
- SELECT @payMthd=paymentPref FROM SELLERS WHERE sellerID=@seller;
- SELECT @bidID=bidID FROM BIDS WHERE auctionID=@auctionID AND bidAmount=@oldbid;
- --Create Payment Entry
- INSERT INTO PAYMENTS(paymentMthd, paymentAmount) VALUES (@payMthd, @oldbid);
- --Get the PaymentID
- SELECT @paymentID=SCOPE_IDENTITY();
- --Create Sales Entry
- INSERT INTO SALES(itemID, bidID, paymentID, saleTime) VALUES ( @itemID, @bidID, @paymentID, @aucFinish);
- end
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement