Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.28 KB | None | 0 0
  1. CREATE TRIGGER cancelledOrder
  2. ON
  3. Order_status
  4. FOR UPDATE
  5. AS BEGIN
  6. IF (SELECT Status_description FROM INSERTED) = 'Cancelled'
  7. BEGIN
  8. DELETE FROM Order_items WHERE Order_id = (SELECT Order_id FROM INSERTED)
  9. END
  10. END
  11.  
  12.  
  13.  
  14. CREATE TRIGGER newOrder
  15. ON
  16. Orders
  17. FOR INSERT
  18. AS BEGIN
  19. DECLARE @newOrderID INT, @newStatusID INT
  20. SELECT @newOrderID = Order_id FROM INSERTED
  21. SELECT @newStatusID = max(Status_id) + 1 FROM Order_status
  22. INSERT INTO Order_status VALUES
  23. (@newStatusID, 'Processing', @newOrderID, GETDATE())
  24. END
  25.  
  26.  
  27. CREATE TRIGGER preventDeleteProduct
  28. ON
  29. Products
  30. FOR DELETE
  31. AS BEGIN
  32. IF EXISTS(SELECT * FROM DELETED WHERE Product_type = (SELECT Product_type_id FROM Product_type WHERE Product_type_name = 'Meat'))
  33. BEGIN
  34.     ROLLBACK;
  35.     THROW 50001, 'Cannot delete product of type chicken', 1;
  36. END
  37. END
  38.  
  39. --------------------------------------------------------------------------------------
  40. NEW TRIGGERS
  41.  
  42. -------------------------------------------------------
  43. CREATE TRIGGER deliveredOrder
  44. ON
  45. Delivery_status
  46. FOR UPDATE
  47. AS
  48. BEGIN
  49. DECLARE @orderSum INT, @orderID INT, @custName VARCHAR(50)
  50. IF (SELECT Delivery_status_description FROM INSERTED) = 'Delivered'
  51. BEGIN
  52. SELECT @orderID = order_id FROM Deliveries WHERE Delivery_id = (SELECT Delivery_id FROM INSERTED)
  53. EXEC calculatingSumOut @orderID, @price = @orderSum OUTPUT
  54. SELECT @custName = customer_lastname FROM Customers WHERE Customer_id = (SELECT Order_customer FROM Orders WHERE Order_id = @orderID)
  55. PRINT cast(@custName as VARCHAR) + ' order was delivered for the amount of : ' + cast(@orderSum as VARCHAR)
  56. END
  57. END
  58.  
  59. -------------------------------------------------------------
  60.  
  61. CREATE TRIGGER discountCustomer
  62. ON
  63. Orders
  64. FOR INSERT
  65. AS BEGIN
  66. DECLARE @deliveredOrders INT, @custID INT
  67. SELECT @custID = Order_customer FROM INSERTED
  68. EXEC @deliveredOrders = numberOfCompletedOrders @custID
  69. IF @deliveredOrders > 10 AND @deliveredOrders < 20
  70. BEGIN
  71.     IF (SELECT COUNT(Customer_id) FROM Customer_discount WHERE Customer_id = @custID) < 0
  72.     BEGIN
  73.     INSERT INTO Customer_discount VALUES (@custID, 10)
  74.     END
  75. END
  76. IF @deliveredOrders > 20
  77. BEGIN
  78.     IF (SELECT COUNT(Customer_id) FROM Customer_discount WHERE Customer_id = @custID) > 0
  79.     BEGIN
  80.     UPDATE Customer_discount SET Discount_percent = 20 WHERE Customer_id = @custID
  81.     END
  82. END
  83. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement