Welcome to Sign in | Help
in Search

TRIGGER INSTEAD OF DELETE

Last post 01-05-2010, 11:14 AM by werty80. 2 replies.
Sort Posts: Previous Next
  •  12-16-2009, 10:57 AM 7918

    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?
  •  12-16-2009, 12:54 PM 7919 in reply to 7918

    Re: TRIGGER INSTEAD OF DELETE

    Din ce am inteles eu tu vrei ca atunci cand se sterge o factura de pe un pct de lucru sa se stearga si din master .Ai putea face o tranzactir distribuita folosind serviciu mstdc -cu serverul central fiind distributor de tranzactii,in care sa faci stergerile alea...
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  01-05-2010, 11:14 AM 7943 in reply to 7918

    Re: TRIGGER INSTEAD OF DELETE

    Vezi ca trigerele nu merg pe linked servers decat daca activezi niste chestii(am avut aceasi problema mai demult ceva de distributed transaction).
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems