Advertisement
JanuszKowalski123

Czy awaria danego urządzenia zagraża czasom poprawnej realizacji już zgłoszonych zleceń

Apr 24th, 2024 (edited)
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.06 KB | None | 0 0
  1. "Czy awaria danego urządzenia zagraża czasom poprawnej realizacji już zgłoszonych zleceń" - użycie mechanizmu triggera. Trigger pozwala na automatyczne wykonanie określonych działań w odpowiedzi na określone zdarzenia, takie jak dodanie, aktualizacja lub usunięcie danych w tabeli. Trigger ten jest wyzwalany po wstawieniu lub aktualizacji wiersza w tabeli Device_Failures, który wskazuje na awarię urządzenia. Sprawdza on, czy istnieją zlecenia klientów, których daty realizacji kolidują z czasem trwania awarii tego urządzenia. Jeśli takie zlecenia istnieją, trigger wyświetla komunikat o potencjalnym zagrożeniu.
  2.  
  3. ######################
  4. CREATE TRIGGER CheckOrderCompletionTime
  5. ON Device_Failures
  6. AFTER INSERT, UPDATE
  7. AS
  8. BEGIN
  9.     DECLARE @device_id NVARCHAR(26);
  10.     DECLARE @failure_start DATETIME;
  11.     DECLARE @failure_end DATETIME;
  12.     DECLARE @order_id INT;
  13.  
  14.     -- Pobierz dane dotyczące nowej awarii
  15.     SELECT @device_id = device_id, @failure_start = failure_start, @failure_end = failure_end
  16.     FROM inserted;
  17.  
  18.     -- Sprawdź, czy istnieją zlecenia klientów, których daty realizacji kolidują z czasem trwania awarii urządzenia
  19.     IF EXISTS (
  20.         SELECT 1
  21.         FROM Customers_Orders
  22.         WHERE (customer_order_date_start BETWEEN @failure_start AND @failure_end
  23.             OR customer_order_date_end BETWEEN @failure_start AND @failure_end
  24.             OR @failure_start BETWEEN customer_order_date_start AND customer_order_date_end
  25.             OR @failure_end BETWEEN customer_order_date_start AND customer_order_date_end)
  26.             -- AND device_id = @device_id   -- tu trzeba by jeszcze uzupełnić tabelę zamówień o pole device_id (mapowanie zamówienia do konkretnego urządzenia)
  27.     )
  28.     BEGIN
  29.         PRINT 'Uwaga! Awaria urządzenia ' + @device_id + ' może zagrażać czasom poprawnej realizacji zleceń.';
  30.     END
  31. END;
  32. #############################
  33.  
  34. Trigger można dostosować do konkretnych potrzeb i warunków biznesowych, które mają być uwzględnione podczas sprawdzania zagrożenia dla realizacji zleceń.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement