Başlık boktan oldu farkındayım. Şuan hayal kırıklığı yaşıyorum. Projemde bazı işlemleri Stored Procedure ile yapıyordum. Sonra bir tabloya update, delete ve insert triggerları yazdım. Program üzerinden yani Stored Procedure ile rnek veriyorum delete işlemi yaptığımda trigger'ın tetiklenmediğine şahit oldum. ama sql den yeni sorgu deyip delete işlemi yaptığımda trigger tetikleniyor ve grevini yerine getiriyor. Bu saçmalığı nasıl çzebilirim?

ya sacma olabilir ama sadece bir fikir procedure u tetikledikten sonra connectionu kapatıyormusun? acık kalıyorsa diger crud işlemini procedure ile yapamıyo olabilirmisn? Hayattaki en güzel şeyler : Ya kanun dışı, ya ahlak dışı ya da şişmanlatıcıdır.

Hangi database i kullanıyorsun hocam EmQceR tarafından 23/Ara/19 14:29 tarihinde düzenlenmiştir Bu Yüce Türk Milleti ne ihanetler grdü hepsinin üstesinden gelmeyi başararak tarihe nice zaferler yazdırdı. Bu Millet Kuva-yı milliye hareketini yeniden başlatır. Sivas Kongresini yeniden toplar, Ya İstiklal, Ya lüm diye haykırır ve gereğini yapar. Türk Milleti ihaneti ve hainleri hiç affetmez. Dileğimiz odur ki bu iş sandıkta bitsin, aksi halde "sürüye dalmayı gze alan Kurt, çobanın da, kpeğinde hesabını yapmaz."

sanırım sorunu buldum. benim silme işlemini toplu olarak stored procedure yaptırıyordum. ama bunu tek tek tablo tablo c# tarafında yaptığımda trigger tetiklendi. saçma ama sorun buymuş sanırım. detaylı test edip tekrar yazacağım.

sahit oldum demek cok havada kalmis bir sey hocam.. Yazdigin condition ile ilgili olabilir.. Var olan tüm triggerlarini kapat ve delete islemi icin bir trigger olustur ve audit tablosu olusturarak loglama yap. rnek olarak: https://www.codeproject.com/Articles/21068/Audit-Trail-Generator-for-Microsoft-SQL buradan greceksin tetiklenip tetiklenmedigini.. ikinci olarak SQL Server Profiler kullanip inceleyebilirisn kayitlari.. Sorunu bulmak icin adim adim ilerlemek gerek. Muhtemelen bir yerde hata yaptin... Eger kayit siliniyorsa trigger'in calismasi lazim. bunu da kesin anlamak icin loglama yapmalisin Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

sahit oldum demek cok havada kalmis bir sey hocam.. Yazdigin condition ile ilgili olabilir.. Var olan tüm triggerlarini kapat ve delete islemi icin bir trigger olustur ve audit tablosu olusturarak loglama yap. rnek olarak: https://www.codeproject.com/Articles/21068/Audit-Trail-Generator-for-Microsoft-SQL buradan greceksin tetiklenip tetiklenmedigini.. ikinci olarak SQL Server Profiler kullanip inceleyebilirisn kayitlari.. Sorunu bulmak icin adim adim ilerlemek gerek. Muhtemelen bir yerde hata yaptin... Eger kayit siliniyorsa trigger'in calismasi lazim. bunu da kesin anlamak icin loglama yapmalisin c# üzerinden tabloya insert işlemi yaptığımda stok kısmında düşüş başarılı bir şekilde oluyor. Bunda sorun yok. ancak yine C# üzerinden delete işlemi yaptığımda Delete trigger'i tetiklenmiyor. ama sql den yeni sorgu deyip delete işlemi yaptığımda trigger tetikleniyor ve grevini yerine getiriyor. yani delete işlemini management studio üzerinden yaptığımda trigger tetikleniyor. ama program üzerinden yaptığımda tetiklenmiyor.trigger ı hatalı yazmış olsam sql üzerinden delete işlemi yaparkende çalışmamaması lazım değil mi?

else ekledim. diğer update ve insert trigger ları sildim. sonuç değişmed. program üzerinden yaptığım silme işleminde delete trigger ı çalışmıyor.

uygunsan teamviewer ver bakalim hocam byle olmuyor Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

mssql Oracle da byle bir sorun olmadı da hocam ondan sordum. SP ve triggerin içeriğini yazabilir misin? Bu Yüce Türk Milleti ne ihanetler grdü hepsinin üstesinden gelmeyi başararak tarihe nice zaferler yazdırdı. Bu Millet Kuva-yı milliye hareketini yeniden başlatır. Sivas Kongresini yeniden toplar, Ya İstiklal, Ya lüm diye haykırır ve gereğini yapar. Türk Milleti ihaneti ve hainleri hiç affetmez. Dileğimiz odur ki bu iş sandıkta bitsin, aksi halde "sürüye dalmayı gze alan Kurt, çobanın da, kpeğinde hesabını yapmaz."

güncell

hatta aşama aşama kontrol ediyorum. Management studio üzerinden yaptığım delete işleminde herhangi bir sorun yok.trigger şu şekilde. ALTER trigger . on . after deleteasdeclare @UrunId intdeclare @ServisID bigintdeclare @ServisTipID intdeclare @MontajYapilmaDurum bitselect @UrunId=ServisUrunID, @ServisID=ServisID, @MontajYapilmaDurum=MontajYapilmaDurum from deletedselect @ServisTipID=ServisTipID from ServisIslemler where ServisID=@ServisIDselect '1 Aşama'select @ServisIDselect @ServisTipIDselect @MontajYapilmaDurumIF @ServisTipID=1 and @MontajYapilmaDurum=1BEGINselect '2 Aşama' update ServisProduc set UrunMevcudu+=1 where ServisProducID=@UrunIdENDELSE if @ServisTipID=2 and @MontajYapilmaDurum=1BEGINselect '3 Aşama' update MontajUrun set UrunMevcudu+=1 where MontajUrunID=@UrunIdend

evet sorunu C# tarafında çzdüm...triggerin tetiklenmesini istediğim tablodaki silme işlemi için ayrı bir datacontext belirledim. sorun çzüldü... dbServisDataContext dbt = new dbServisDataContext ; var y = dbt. ServisIslemlerSubs. Where ; dbt. ServisIslemlerSubs. DeleteAllOnSubmit ; dbt. SubmitChanges ; db = new dbServisDataContext ; var x = db. ServisIslemlers. Where ; db. ServisIslemlers. DeleteAllOnSubmit ; db. SubmitChanges ; var z = db. CariBorcs. Where ; db. CariBorcs. DeleteAllOnSubmit ; db. SubmitChanges ; var q = db. CariTahsilats. Where ; db. CariTahsilats. DeleteAllOnSubmit ; db. SubmitChanges ;

if-else if yazdigin kisma bi de else ekleyip bi kaydi günceller misin? belki o iflere girmiyor olabilir.. ayrica baska trigger var mi yok mu onlara bakip, var olanlari kapat hocam.. etkileyebiliyor. SP üzerinden calistiginda demek ki bir farklilik oluyor.. Senin kafandaki gibi bir "bug" oldugunu düsünmüyorum.. Dedigimi bi dene sonra bakalim tekrar Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

ya sacma olabilir ama sadece bir fikir procedure u tetikledikten sonra connectionu kapatıyormusun? acık kalıyorsa diger crud işlemini procedure ile yapamıyo olabilirmisn? denemediğim şey kalmadı. bunuda denedim. db. Sp_Delete_ServisIslemler ; db. Dispose ; dispose yaptım. yine aynı.

eger else'e giriyorsa da bir tane temp tablo olusturup, if conditionlarini o tabloya yazip degerlerini karsilastir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Hocam basit şekilde SQL server da da trigger ve SP oluşturdum. SP ye delete işlemini koydum trigger a da şu tabloda silme işlemi olduktan sonra log tablosuna silindi diye kayıt ekle dedim oldu. Senin kodlara da bakayım Bu Yüce Türk Milleti ne ihanetler grdü hepsinin üstesinden gelmeyi başararak tarihe nice zaferler yazdırdı. Bu Millet Kuva-yı milliye hareketini yeniden başlatır. Sivas Kongresini yeniden toplar, Ya İstiklal, Ya lüm diye haykırır ve gereğini yapar. Türk Milleti ihaneti ve hainleri hiç affetmez. Dileğimiz odur ki bu iş sandıkta bitsin, aksi halde "sürüye dalmayı gze alan Kurt, çobanın da, kpeğinde hesabını yapmaz."