Преобразование триггера PL / SQL в T-SQL - PullRequest
1 голос
/ 11 января 2011

Я не очень хорош в T-SQL. Как может следующий триггер в T-SQL? Для каждого не работает в T-SQL.

CREATE OR REPLACE TRIGGER DSS.TRG_DEPO_STOK_IZLEME
   BEFORE INSERT OR UPDATE
   ON DSS.CR_DEPO_STOK FOR EACH ROW
BEGIN

INSERT INTO CR_DEPO_STOK_IZLEME
            (ID_DEPO_STOK_IZLEME
           , ID_DEPO_STOK
           , MT_MIKTAR_ESKI
           , MT_MIKTAR_YENI
           , EKLEME_TARIHI
            )
     VALUES (SEQ_ID_DEPO_STOK_IZLEME.NEXTVAL
           , :NEW.ID_DEPO_STOK
           , :OLD.MT_MIKTAR
           , :NEW.MT_MIKTAR
           , SYSDATE
            );

EXCEPTION
   WHEN OTHERS
   THEN
      NULL;
END;

1 Ответ

1 голос
/ 11 января 2011

Возможно, что-то вроде

CREATE TRIGGER DSS.TRG_DEPO_STOK_IZLEME
   ON DSS.CR_DEPO_STOK
   AFTER INSERT, UPDATE
AS   
BEGIN

INSERT INTO CR_DEPO_STOK_IZLEME
            (ID_DEPO_STOK
           , MT_MIKTAR_ESKI
           , MT_MIKTAR_YENI
           , EKLEME_TARIHI
            )
SELECT       i.ID_DEPO_STOK
           , d.MT_MIKTAR
           , i.MT_MIKTAR
           , GETDATE()
FROM INSERTED i FULL OUTER JOIN DELETED d ON i.pk = d.pk            

END;

В TSQL нет триггеров строк, и последовательности не будут появляться до следующей версии, поэтому я предположил, что ID_DEPO_STOK_IZLEME будет столбцом identity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...