automatyczne uzupełnianie jednej tabeli po zmianie w innej

0

Witam,
Dane wejściowe:

MS SQL 2008 R2
Baza danych: baza
tabele w bazie:
pracownicy z polami NRID[int], ZATRUDNIONY[datetime], ZWOLNIONY[datetime]
kalendarze z polami: pracNRID, DATA

Proszę o pomoc w rozwiązaniu problemu w jaki sposób uzupełniać tabelę kalendarze w przypadku dodania pracownika lub po zmianie wartości ZATRUDNIONY/ZWOLNIONY.
jeden wiersz w tabeli kalendarze przechowuje jeden miesiąc pracy danego pracownika, czyli
dla NTID = 10, ZATRUDNIONY=2012-02-01 i ZWOLNIONY=2013-05-30
powinno zostać utworzonych 16 rekordów
10,2012-02-01
10,2012-03-01
10,2012-04-01
...
10,2013-05-01

Jak to zrobić?

Z góry wielkie dzięki za pomoc.

0

a jak pracuje cały czas, czyli zwolniony jest null to ile tych rekordów ma utworzyć? BTW jakaś mocno nieżyciowa ta struktura z kalendarzem

0

Zatrudniony / zwolniony is not null

jeśli chodzi o strukturę,
wszelkie propozycje / uwagi mile widziane

0

a skąd dzisiaj wiesz kiedy krystyna z gazowni będzie zwolniona?

0

bo podpisuje odpowiednią umowę (ale to nie jest sednem sprawy)

w przypadku gdy zostnie wcześniej zwolniona rekordy dla niej na czas "przyszły" mogą pozostać w tabeli kalendarze

0

jest bo ja np. cały czas staram się zrozumieć po co Ci te rekordy w tabeli kalendarz

0

hmmmmm
powiem tak...
takie jest zadanie

0

to w trigerze odpalasz procedurę, która Ci wstawi żądaną ilość rekordów. Nie wiem na ile mssql pozwala w trigerach wykonywać trochę bardziej skomplikowane operacje ale może zamiast osobną procedurą będzie to można zrobić bezpośrednio w trigerze

0

tak się domyślałem
ale bardziej mnie interesuje teraz ja to zrobić
jak w triggerze zawrzeć reakcję na A0 nowy rekord, b) modyfikację pól w istniejącym rekordzie
no i jak potem wstawiać rekordy do kalendarzy zwłaszcza w sytuacji zmiany pól w pracowniku już istniejącym (sprawdzać czy już dana data dla pracownika istnieje i aby dodać tylko nowe daty)

dzięki abrakadaber za zainteresowanie

0

czy ktoś może rzucić jakimś przykładem, linkiem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0