Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. CREATE TRIGGER ProductTrigger ON product AFTER UPDATE
  2. AS
  3.  
  4. -- ако моделът не се обновява
  5.  
  6. IF EXISTS ( SELECT *
  7. FROM deleted d
  8. JOIN inserted i ON d.model = i.model
  9. JOIN pc ON pc.model = d.model
  10. WHERE d.type <> i.type AND d.type = 'PC') OR
  11. EXISTS ( SELECT *
  12. FROM deleted d
  13. JOIN inserted i ON d.model = i.model
  14. JOIN laptop l ON l.model = d.model
  15. WHERE d.type <> i.type AND d.type = 'Laptop') OR
  16. EXISTS ( SELECT *
  17. FROM deleted d
  18. JOIN inserted i ON d.model = i.model
  19. JOIN printer p ON p.model = d.model
  20. WHERE d.type <> i.type AND d.type = 'Printer')
  21. BEGIN
  22. RAISERROR('Unacceptable model type update', 11, 1)
  23. ROLLBACK
  24. END
  25.  
  26. IF UPDATE(model)
  27. BEGIN
  28. IF EXISTS (SELECT *
  29. FROM deleted d
  30. JOIN pc ON pc.model = d.model
  31. WHERE d.model NOT IN (SELECT model FROM inserted)
  32. AND d.type = 'PC') OR
  33. EXISTS (SELECT *
  34. FROM deleted d
  35. JOIN laptop ON laptop.model = d.model
  36. WHERE d.model NOT IN (SELECT model FROM inserted)
  37. AND d.type = 'Laptop') OR
  38. EXISTS (SELECT *
  39. FROM deleted d
  40. JOIN printer ON printer.model = d.model
  41. WHERE d.model NOT IN (SELECT model FROM inserted)
  42. AND d.type = 'Printer')
  43. BEGIN
  44. RAISERROR('Unacceptable model type update', 11, 1)
  45. ROLLBACK
  46. END
  47. END
  48.  
  49. -- ако моделът се обновява
  50. -- - може да видиме, кои са моделите, които изчезват от играта,
  51. да им вземеме типа и да провериме дали има изостанали
  52. -- - може да видиме, кои са моделите, които остават в играта с
  53. нов тип и за тях да видиме дали има проблемни изостанали със стария
  54. тип
  55. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement