Welcome to Sign in | Help

TRIGGER INSTEAD OF DELETE

  •  12-16-2009, 10:57 AM

    TRIGGER INSTEAD OF DELETE

    Salut,

    Uite ce problema am eu: am un erp care e pus pe mai multe puncte de lucru, cu replicare intre ele, pe SQL 2008. La sediul central exista fata de aplicatia standard mai mutle aplicatii aditionale, special facute pentru sediu.
    In una din ele se face o legatura cu foreign key cu un numar de factura care provine din erp si care poate fi introdusa la orice punct de lucru, si mai mult, chiar si stearsa.
    Cand o factura facuta de un punct de lucru e legata de aceasta a 2-a aplicatie, si se sterge la punctul de lucru, in urma replicarii, rezulta un master de factura la sediul central care nu poate fi sters din cauza foreign key-ului.
    Pentru ca aceasca aplciatie suplimentara care e legata prin foreign key sa nu impiedice desfasurarea normala a activitatii am facut un trigger care cel putin teoretic trebuia sa fac urmatoarele operatiuni:
    1. sa verifice daca exista vreo legatura
    2. daca exista sa o stearga, si sa scrie detaliile vechi intr-o tabela ca sa se vada ca la un momentdat a exista o legatura care nu mai exista
    3. sa stearga masterul de factura daca nu exista detalii de factura (care au fost sterse normal de replicare)

    Problema e ca lucrurile nu se intampla chiar asa, adica, intotdeauna, cand se sterge o factura de pe un punct de lucru care era legata de aplicatia suplimentara prin foreign key, masterul nu numai ca nu se sterge, el nu intra in conflict, si mai apare o inregistrare care e facuta de replicare in tabela MSmerge_tombstone dupa rowguid-ul masterului, care nu-mi permite pe urma sa sterg masterul de factura.
    Mentionez ca la punctul de lucru nu e nici o problema, doar la sediul central.

    Am tot cautat o solutie de rezolvare a problemei, dar nu am gasit pana acum.
    Are cineva vreo idee?
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems