Ovoshi
Дата: 24.01.2009 19:42:20
Немогу написать тригер который будет проверять 2 поля сравнивать их, на больше или меньше и изметь нужное,
в оракле могу сделать а вот в MS SQl 2005 не получаеться.
Вот собственно таблица такая:
create table views (
views_id int identity(1,1) not null,
views_name varchar(120) not null,
on_hand int not null,
min_on_hand int not null default 5,
reorder int not null default 0,
price decimal(6,2),
constraint PK_views_id Primary key(views_id)
)
Я там проверяю условие такое:
if (on_hand < min_on_hand) то если труе то надо сделать update
вообщем кто плохо понял могу показать рабочий код для оракл
create or replace trigger trg_reorder
before insert or update of on_hand, min_on_hand on views
for each row
Ovoshi
Дата: 24.01.2009 19:46:12
Не дописал,
begin
if :new.on_hand <= :new.min_on_hand then
:new.reorder :=1;
end;
--__Александр__--
Дата: 24.01.2009 20:20:48
А синтаксис вы из головы придумываете?
Вот, читайте http://msdn.microsoft.com/ru-ru/library/ms189799.aspx
iap
Дата: 24.01.2009 20:32:19
create trigger trg_reorder on views for insert, update as
update views
set views.reorder=1
from inserted i
where views.views_id=i.views_id
and i.on_hand<=i.min_on_hand;
iap
Дата: 24.01.2009 20:34:19
Лучше так:
iap |
create trigger trg_reorder on views for insert, update as
update views
set views.reorder=1
from inserted i
where views.views_id=i.views_id
and i.on_hand<=i.min_on_hand
and views.reorder<>1; |
iap
Дата: 24.01.2009 20:38:30
Остаётся, правда, вопрос: а почему полю reorder не возвращается значение <> 1, если происходит update таким образом, что on_hand становится больше, чем min_on_hand?
Кстати, зачем поле reorder вообще сделано постоянным, а не вычисляемым? Ведь тогда триггер был бы не нужен.
Ovoshi
Дата: 24.01.2009 21:05:02
iap,
Так преподователь захотел!
Спасибо! щя попробую
iap
Дата: 24.01.2009 21:16:29
Ovoshi |
iap, Так преподователь захотел! Спасибо! щя попробую |
Жалко, что Вы ничего не сказали о преподавателе сразу.
Ни за что не стал бы постить в этой теме.
Ovoshi
Дата: 24.01.2009 21:39:49
iap,
Почему это?
Ovoshi
Дата: 24.01.2009 21:41:25
iap,
Скажем так, если б мне самому не было бы интересно я б даже это и не спрашивал)