Temat: [MSSQL] Automatyczne przeniesienie rekordu do innej tabeli
Chodzi więc o mechanizm, który "na bieżąco" sprawdza czy data nie jest równa aktualnej we wszystkich rekordach tabeli i przenosi jeden z nich do drugiej.
Nie da się więc zastosować trigerów, bo kontrola daty nie odbywa się przy wstawianiu.
Jedynym rozwiązaniem pozostają więc Joby. Dokładność sprawdzania czasu - do 1 minuty. No i musisz monitorować działanie Joba, żeby się nie zdarzyło, że na przykład przez parę godzin nie działa, bo się wyłączył.
Proponuję więc taki scenariusz
- napisać procedure, która przenosi rekordy starsze niż aktualna data do innej tabeli (to rozwiąże sprawę, jeśli Job nie wykonałby się potem przypadkowo raz czy dwa razy pod rząd).
- W SQL Server Agent stworzyć Joba, który uruchamia procedurę co 1 minutę (częściej się z tego co wiem nie da).
- Zaimplementować mechanizm monitorowania działania Joba, najprostszy to wysłanie maila w przypadku niepowodzenia, ale nie zadziała jeśli padnie np. cała usługa SQL Server Agenta...
Alternatywą jest napisanie własnej usługi, która przenosi rekordy. Wtedy kontrola może odbywać się częściej niż co minutę, a aplikację/stronę internetową można wyposażyć w mechanizmy integracji z serwisem i w przypadku jego awarii zareagować bezpośrednio na stronie.
Pozdrawiam
JArek