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/.



Członek DUG




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





Bicycle repairman






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



Członek DUG




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.'
endi za każdym razem wyrzuca 'Czas nie jest rekordem' czyli nie działa porównywanie ale co jest nie tak?
Offline