Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Musze zrobić projekt z Baz danych w T-sql (M$) i potrzebuję pomocy. W ogóle nie wiem czy to jest wykonalne ale to mi już powiecie.
Mianowicie mam tabele czasy
create table czasy ( id_czasu int primary key, id_tor int foreign key references tory(id_toru), id_kier int foreign key references kierowcy(id_kierowcy), czas time, rekord int default 0);
i po dodaniu czasu chciałbym aby trigger sprawdzil czy nowy czas ma mniejszą wartość niż stary rekord i jeśli tak to przy starym rekordzie wstawił rekord=0 a w nowym rekord=1. W ogóle nie wiem jak się za to zabrać i czy to wykonalne HELP
Jak nie trigger to jakaś procedura? Coś?
Offline
Jest wykonalne, przy pomocy triggerów właśnie.
http://msdn.microsoft.com/en-us/library/ms189799.aspx - tutaj znajdziesz wystarczająco dużo informacji aby osiągnąć to co chcesz.
Życzę miłego studiowania tematu :)
Offline
Pomyślałem.... Pokombinowałem.... wieeele wody upłynęło :) i wyszło coś takiego:
create trigger DodajCzas on czasy for insert as declare @tor int select @tor = (select id_tor from inserted) declare @stary time select @stary = (select czas from czasy where rekord = 1 and id_tor = @tor) declare @nowy time select @nowy = (select czas from inserted) if (@stary < @nowy) begin update czas.rekord set czas.rekord = 0 where rekord = 1 update czas.rekord set czas.rekord = 1 from inserted print 'Czas jest nowym rekordem!' end else begin print 'Czas nie jest rekordem.' end
i za każdym razem wyrzuca 'Czas nie jest rekordem' czyli nie działa porównywanie ale co jest nie tak?
Offline