How convert oracle trigger to ms sql trigger?
764425May 19 2011 — edited May 19 2011Hi everyone,
I'm new in ms sql server 2008. I am doing my bachalor finish work and I want to convert oracle trigger code to ms sql server code, because I need to do comparason between these two database systems. Is it possible to convert these triggers to ms sql triggers? Can anyone help me? Here are oracle triggers:
create or replace trigger buyer_seller_tel_nr
before insert or update on buyer_seller
for each row
declare
-- local variables here
begin
if substr(:new.telefon, 1, 2)='86' then
:new.telefon:='+370'||substr(:new.telefon, 2, length(:new.telefon));
end if;
end buyer_seller_tel_nr;
and another:
create or replace trigger saskaita_faktura_aud
before insert or update or delete on saskaita_faktura
for each row
declare
-- local variables here
begin
if inserting
then
insert into saskaita_faktura_aud
values
('INSERT',
USER,
SYSDATE,
:new.SASK_FAKT_ID,
:new.PIRKEJO_ID,
:new.PARDAVEJO_ID,
:new.SERIJA,
:new.NUMERIS,
:new.PR_PASLAUG_ID,
:new.MATO_ID,
:new.PARDAVIMO_DATA,
:new.KIEKIS,
:new.KAINA_BE_PVM,
:new.NUOLAIDA_ID,
:new.PVM_ID,
:new.SUMA_BE_PVM,
:new.PVM_SUMA,
:new.SUMA_SU_NUOLAIDA,
:new.SUMA_SU_PVM,
:new.IS_VISO_BE_PVM,
:new.IS_VISO_SU_PVM,
:new.APMOKEJIMO_ID,
:new.SASK_ISRASYMO_DATA,
:new.SASKAITA_APMOKETI_IKI,
:new.SUMA_ZODZIAIS,
:new.SASKAITA_ISRASE,
:new.PREKES_ISDAVE,
:new.PREKES_PRIEME);
elsif updating
then
insert into saskaita_faktura_aud
values
('UPDATE',
USER,
SYSDATE,
:new.SASK_FAKT_ID,
:new.PIRKEJO_ID,
:new.PARDAVEJO_ID,
:new.SERIJA,
:new.NUMERIS,
:new.PR_PASLAUG_ID,
:new.MATO_ID,
:new.PARDAVIMO_DATA,
:new.KIEKIS,
:new.KAINA_BE_PVM,
:new.NUOLAIDA_ID,
:new.PVM_ID,
:new.SUMA_BE_PVM,
:new.PVM_SUMA,
:new.SUMA_SU_NUOLAIDA,
:new.SUMA_SU_PVM,
:new.IS_VISO_BE_PVM,
:new.IS_VISO_SU_PVM,
:new.APMOKEJIMO_ID,
:new.SASK_ISRASYMO_DATA,
:new.SASKAITA_APMOKETI_IKI,
:new.SUMA_ZODZIAIS,
:new.SASKAITA_ISRASE,
:new.PREKES_ISDAVE,
:new.PREKES_PRIEME);
ELSE
insert into saskaita_faktura_aud
values
('DELETE',
USER,
SYSDATE,
:old.SASK_FAKT_ID,
:old.PIRKEJO_ID,
:old.PARDAVEJO_ID,
:old.SERIJA,
:old.NUMERIS,
:old.PR_PASLAUG_ID,
:old.MATO_ID,
:old.PARDAVIMO_DATA,
:old.KIEKIS,
:old.KAINA_BE_PVM,
:old.NUOLAIDA_ID,
:old.PVM_ID,
:old.SUMA_BE_PVM,
:old.PVM_SUMA,
:old.SUMA_SU_NUOLAIDA,
:old.SUMA_SU_PVM,
:old.IS_VISO_BE_PVM,
:old.IS_VISO_SU_PVM,
:old.APMOKEJIMO_ID,
:old.SASK_ISRASYMO_DATA,
:old.SASKAITA_APMOKETI_IKI,
:old.SUMA_ZODZIAIS,
:old.SASKAITA_ISRASE,
:old.PREKES_ISDAVE,
:old.PREKES_PRIEME);
end if;
end saskaita_faktura_aud;
create table SASKAITA_FAKTURA_AUD
(
OPERATION VARCHAR2(10),
P_USER VARCHAR2(50),
P_DATE DATE,
SASK_FAKT_ID NUMBER(10),
PIRKEJO_ID NUMBER(10),
PARDAVEJO_ID NUMBER(10),
SERIJA VARCHAR2(3),
NUMERIS NUMBER(10),
PR_PASLAUG_ID NUMBER(10),
MATO_ID NUMBER(10),
PARDAVIMO_DATA VARCHAR2(15),
KIEKIS NUMBER(10),
KAINA_BE_PVM NUMBER(10,2),
NUOLAIDA_ID NUMBER(4),
PVM_ID NUMBER(3),
SUMA_BE_PVM NUMBER(10,2),
PVM_SUMA NUMBER(10,2),
SUMA_SU_NUOLAIDA NUMBER(10,2),
SUMA_SU_PVM NUMBER(10,2),
IS_VISO_BE_PVM NUMBER(10,2),
IS_VISO_SU_PVM NUMBER(10,2),
APMOKEJIMO_ID NUMBER(3),
SASK_ISRASYMO_DATA VARCHAR2(15),
SASKAITA_APMOKETI_IKI VARCHAR2(15),
SUMA_ZODZIAIS VARCHAR2(100),
SASKAITA_ISRASE VARCHAR2(60),
PREKES_ISDAVE VARCHAR2(60),
PREKES_PRIEME VARCHAR2(60)
)