Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 перевод из одной субд в другую  [new]
darkgrey19
Member

Откуда:
Сообщений: 12
до нынешнего момента работал только с firebird, но сейчас нужно сделать базу на mssql. Помогите перевести триггер
CREATE OR ALTER TRIGGER PRIHOD_TOVARA FOR DOGOVORA
ACTIVE BEFORE UPDATE POSITION 0
AS
declare variable tov integer;
declare variable kol integer;
begin
if((old.provod = 0) and (new.provod =1)) then
begin
for
select tvd.id_tovara,tvd.kolichestvo from tovary_v_dogovore tvd
where tvd.id_dogovora = old.id_dogovora
into :tov, :kol
do
begin
update tovar t
set t.kolichestvo_na_sklade=t.kolichestvo_na_sklade + :kol
where t.id_tovara=:tov;
end
   end

if((old.provod = 1) and (new.provod =0)) then
begin
for
select tvd.id_tovara,tvd.kolichestvo from tovary_v_dogovore tvd
where tvd.id_dogovora = old.id_dogovora
into :tov, :kol
do
begin
update tovar t
set t.kolichestvo_na_sklade=t.kolichestvo_na_sklade - :kol
where t.id_tovara=:tov;
end
   end
   end
8 ноя 14, 13:14    [16815980]     Ответить | Цитировать Сообщить модератору
 Re: перевод из одной субд в другую  [new]
aleks2
Guest
CREATE TRIGGER PRIHOD_TOVARA ON DOGOVORA
AFTER UPDATE 
AS
begin

  update t set t.kolichestvo_na_sklade = t.kolichestvo_na_sklade 
                                        + tvd.kolichestvo * case 
                                                              when d.provod = 0 and i.provod = 1 then 1  
                                                              when d.provod = 1 and i.provod = 0 then -1  
                                                            end 
    from inserted i  
         inner join deleted d on i.ID = d.ID -- шо там у тя primary key мине неведомо, но ID - это primary key таблицы DOGOVORA
         inner join tovary_v_dogovore tvd on tvd.id_dogovora = d.id_dogovora
         inner join tovar t on t.id_tovara = tvd.id_tovara
    where d.provod <> i.provod;
  
end;
  
8 ноя 14, 14:30    [16816130]     Ответить | Цитировать Сообщить модератору
 Re: перевод из одной субд в другую  [new]
darkgrey19
Member

Откуда:
Сообщений: 12
aleks2,
Большое спасибо, ещё один вопрос у меня при создании триггера не работает интелектуальная поддержка, не подскажите как исправить?
8 ноя 14, 14:56    [16816174]     Ответить | Цитировать Сообщить модератору
 Re: перевод из одной субд в другую  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
darkgrey19
aleks2,
Большое спасибо, ещё один вопрос у меня при создании триггера не работает интелектуальная поддержка, не подскажите как исправить?
А откуда уверенность, что это можно исправить?
8 ноя 14, 19:13    [16816659]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить