Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Silinen Kaydı Mail Atma
#41
Merhaba ; TBLEMANETIPTCH Mükerrer kayıt atıyor bir kere kaydettikten sonra update edildikçe üzerine nasıl yazdırabilirim?



ALTER TRIGGER [dbo].[EmanetCariHareketKayit]
   ON  [dbo].[TBLCAHAR] --WITH ENCRYPTION
  FOR UPDATE,DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ACTIONTYPE char(1)=CASE WHEN NOT EXISTS(SELECT * FROM INSERTED) THEN 'D' -- DELETE
                                WHEN NOT EXISTS(SELECT * FROM DELETED)  THEN 'I' -- INSERT
                                ELSE 'U' -- UPDATE
                                END
IF  @ACTIONTYPE ='U'
INSERT INTO TBLEMANETIPTCH
     (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
     F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
     PLASIYER_KODU,ENT_REF_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
     C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
     SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
     F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
     PLASIYER_KODU,ENT_REF_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
     C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM='Düzeltilen Cari Hareket'
FROM DELETED WHERE INC_KEY_NUMBER=INC_KEY_NUMBER
Cevapla
#42
Merhaba TBLEMANETIPTCH tablosunda mevcutsa siilersin. yenı halını eklersin
ALTER TRIGGER [dbo].[EmanetCariHareketKayit]
  ON  [dbo].[TBLCAHAR] --WITH ENCRYPTION
 FOR UPDATE,DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ACTIONTYPE char(1)=CASE WHEN NOT EXISTS(SELECT * FROM INSERTED) THEN 'D' -- DELETE
                               WHEN NOT EXISTS(SELECT * FROM DELETED)  THEN 'I' -- INSERT
                               ELSE 'U' -- UPDATE
                               END



IF  @ACTIONTYPE ='U'
BEGIN

DELETE FROM TBLEMANETIPTCH
WHERE CARI_KOD IN (SELECT CARI_KOD FROM DELETED)

INSERT INTO TBLEMANETIPTCH
    (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
    F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
    PLASIYER_KODU,ENT_REF_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
    C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
    SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
    F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
    PLASIYER_KODU,ENT_REF_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
    C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM='Düzeltilen Cari Hareket'
FROM DELETED WHERE INC_KEY_NUMBER=INC_KEY_NUMBER

END
Cevapla
#43
Serdar kardeşim Merhaba; Ben şu şekilde Düzeltilen kaydı TBLEMANETCH tablosuna yazdırıyorum sonrasında düzeltme olursa başka kayıt atmadan üzerinde düzeltmede yapıyorum fakat silme kısmında sorunum var sildiğim zaman TBLCAHAR dan silip , silinen kaydı "İptal edilen Kayıt" diye tabloya atırmak istiyorum bir türlü beceremedim yardımcı olur musun?

ALTER TRIGGER [dbo].[EmanetCariHareketKayit] ON  [dbo].[TBLCAHAR] --WITH ENCRYPTION
FOR UPDATE,INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ACTIONTYPE char(1)=CASE WHEN NOT EXISTS(SELECT * FROM INSERTED) THEN 'D' -- DELETE
                                WHEN NOT EXISTS(SELECT * FROM DELETED)  THEN 'I' -- INSERT
                                ELSE 'U' -- UPDATE
                                END
IF  @ACTIONTYPE ='U'
UPDATE TBLEMANETIPTCH SET SUBE_KODU=INSERTED.SUBE_KODU,CARI_KOD=INSERTED.CARI_KOD,TARIH=INSERTED.TARIH,VADE_TARIHI=INSERTED.VADE_TARIHI,BELGE_NO=INSERTED.BELGE_NO,
ACIKLAMA=INSERTED.ACIKLAMA,HKA=INSERTED.HKA,BORC=INSERTED.BORC,ALACAK=INSERTED.ALACAK,BAKIYE=INSERTED.BAKIYE,DOVIZ_TURU=INSERTED.DOVIZ_TURU,DOVIZ_TUTAR=INSERTED.DOVIZ_TUTAR,
RAPOR_KODU=INSERTED.RAPOR_KODU,F9SC=INSERTED.F9SC,HAREKET_TURU=INSERTED.HAREKET_TURU,MIKTAR=INSERTED.MIKTAR,ILAVE_RAPOR_KODU=INSERTED.ILAVE_RAPOR_KODU,UPDATE_KODU=INSERTED.UPDATE_KODU,
KAPATILMIS_TUTAR=INSERTED.KAPATILMIS_TUTAR,ODEME_GUNU=INSERTED.ODEME_GUNU,FIRMA_DOVIZ_TIPI=INSERTED.FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI=INSERTED.FIRMA_DOVIZ_TUTARI,PLASIYER_KODU=INSERTED.PLASIYER_KODU,
ENT_REF_KEY=INSERTED.ENT_REF_KEY,INC_KEY=INSERTED.INC_KEY_NUMBER,RAPOR_KODU2=INSERTED.RAPOR_KODU2,DUZELTMETARIHI=INSERTED.DUZELTMETARIHI,S_YEDEK1=INSERTED.S_YEDEK1,S_YEDEK2=INSERTED.S_YEDEK2,
F_YEDEK1=INSERTED.F_YEDEK1,F_YEDEK2=INSERTED.F_YEDEK2,C_YEDEK1=INSERTED.C_YEDEK1,C_YEDEK2=INSERTED.C_YEDEK2,B_YEDEK1=INSERTED.B_YEDEK1,I_YEDEK1=INSERTED.I_YEDEK1,L_YEDEK1=INSERTED.L_YEDEK1,
D_YEDEK1=INSERTED.D_YEDEK1,PROJE_KODU=INSERTED.PROJE_KODU,ONAYTIPI=INSERTED.ONAYTIPI,ONAYNUM=INSERTED.ONAYNUM,BAGLANTI_NO=INSERTED.BAGLANTI_NO FROM TBLEMANETIPTCH 
INNER JOIN INSERTED ON TBLEMANETIPTCH.INC_KEY=INSERTED.INC_KEY_NUMBER
WHERE TBLEMANETIPTCH.INC_KEY=INSERTED.INC_KEY_NUMBER
IF @@ROWCOUNT=0
INSERT INTO TBLEMANETIPTCH
     (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
     F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
     PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
     C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
     SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
     F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
     PLASIYER_KODU,ENT_REF_KEY,INC_KEY_NUMBER,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
     C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM='Düzeltilen Cari Hareket'
FROM INSERTED WHERE INC_KEY_NUMBER=INC_KEY_NUMBER

IF  @ACTIONTYPE ='D'
INSERT INTO TBLEMANETIPTCH
     (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
     F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
     PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
     C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
     D.SUBE_KODU,D.CARI_KOD,D.TARIH,D.VADE_TARIHI,D.BELGE_NO,D.ACIKLAMA,D.HKA,D.BORC,D.ALACAK,D.BAKIYE,D.DOVIZ_TURU,D.DOVIZ_TUTAR,D.RAPOR_KODU,D.
     F9SC,D.HAREKET_TURU,D.MIKTAR,D.ILAVE_RAPOR_KODU,D.UPDATE_KODU,D.KAPATILMIS_TUTAR,D.ODEME_GUNU,D.FIRMA_DOVIZ_TIPI,D.FIRMA_DOVIZ_TUTARI,D.
     PLASIYER_KODU,D.ENT_REF_KEY,D.INC_KEY_NUMBER,D.RAPOR_KODU2,D.DUZELTMETARIHI,D.S_YEDEK1,D.S_YEDEK2,D.F_YEDEK1,D.F_YEDEK2,D.C_YEDEK1,D.
     C_YEDEK2,D.B_YEDEK1,D.I_YEDEK1,D.L_YEDEK1,D.D_YEDEK1,D.PROJE_KODU,D.ONAYTIPI,D.ONAYNUM,D.BAGLANTI_NO,DURUM='İptal Edilen Cari Hareket'
FROM INSERTED D
DELETE TBLEMANETIPTCH FROM TBLEMANETIPTCH,deleted WHERE TBLEMANETIPTCH.INC_KEY_NUMBER=deleted.INC_KEY_NUMBER
End
Cevapla
#44
Merhaba deleted tablosu yerine sanırım inserted yazmıssın.Belittğim yeri değiştir.  Birde BEGIN bloguna alman gerek. Çünkü her iki durum aynı şarta bağlı.

IF  @ACTIONTYPE ='D'
BEGIN
 INSERT INTO TBLEMANETIPTCH (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
    F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
    PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
    C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
 SELECT
    D.SUBE_KODU,D.CARI_KOD,D.TARIH,D.VADE_TARIHI,D.BELGE_NO,D.ACIKLAMA,D.HKA,D.BORC,D.ALACAK,D.BAKIYE,D.DOVIZ_TURU,D.DOVIZ_TUTAR,D.RAPOR_KODU,D.
    F9SC,D.HAREKET_TURU,D.MIKTAR,D.ILAVE_RAPOR_KODU,D.UPDATE_KODU,D.KAPATILMIS_TUTAR,D.ODEME_GUNU,D.FIRMA_DOVIZ_TIPI,D.FIRMA_DOVIZ_TUTARI,D.
    PLASIYER_KODU,D.ENT_REF_KEY,D.INC_KEY_NUMBER,D.RAPOR_KODU2,D.DUZELTMETARIHI,D.S_YEDEK1,D.S_YEDEK2,D.F_YEDEK1,D.F_YEDEK2,D.C_YEDEK1,D.
    C_YEDEK2,D.B_YEDEK1,D.I_YEDEK1,D.L_YEDEK1,D.D_YEDEK1,D.PROJE_KODU,D.ONAYTIPI,D.ONAYNUM,D.BAGLANTI_NO,DURUM='İptal Edilen Cari Hareket'
 FROM INSERTED D --BURASI DELETED OLACAK

--bu satırı neden yazdın? once ekleyıp sonra siliyorsun. Önce silip sonra eklemen gerekmez mi?
 DELETE TBLEMANETIPTCH FROM TBLEMANETIPTCH,deleted WHERE TBLEMANETIPTCH.INC_KEY_NUMBER=deleted.INC_KEY_NUMBER 
END
Cevapla
#45
(23-12-2020, Saat: 20:21)serdar Adlı Kullanıcıdan Alıntı: Merhaba deleted tablosu yerine sanırım inserted yazmıssın.Belittğim yeri değiştir.  Birde BEGIN bloguna alman gerek. Çünkü her iki durum aynı şarta bağlı.

IF  @ACTIONTYPE ='D'
BEGIN
 INSERT INTO TBLEMANETIPTCH (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
    F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
    PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
    C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
 SELECT
    D.SUBE_KODU,D.CARI_KOD,D.TARIH,D.VADE_TARIHI,D.BELGE_NO,D.ACIKLAMA,D.HKA,D.BORC,D.ALACAK,D.BAKIYE,D.DOVIZ_TURU,D.DOVIZ_TUTAR,D.RAPOR_KODU,D.
    F9SC,D.HAREKET_TURU,D.MIKTAR,D.ILAVE_RAPOR_KODU,D.UPDATE_KODU,D.KAPATILMIS_TUTAR,D.ODEME_GUNU,D.FIRMA_DOVIZ_TIPI,D.FIRMA_DOVIZ_TUTARI,D.
    PLASIYER_KODU,D.ENT_REF_KEY,D.INC_KEY_NUMBER,D.RAPOR_KODU2,D.DUZELTMETARIHI,D.S_YEDEK1,D.S_YEDEK2,D.F_YEDEK1,D.F_YEDEK2,D.C_YEDEK1,D.
    C_YEDEK2,D.B_YEDEK1,D.I_YEDEK1,D.L_YEDEK1,D.D_YEDEK1,D.PROJE_KODU,D.ONAYTIPI,D.ONAYNUM,D.BAGLANTI_NO,DURUM='İptal Edilen Cari Hareket'
 FROM INSERTED D --BURASI DELETED OLACAK

--bu satırı neden yazdın? once ekleyıp sonra siliyorsun. Önce silip sonra eklemen gerekmez mi?
 DELETE TBLEMANETIPTCH FROM TBLEMANETIPTCH,deleted WHERE TBLEMANETIPTCH.INC_KEY_NUMBER=deleted.INC_KEY_NUMBER 
END

Serdar kardeşim dediğin şekilde düzenlemeyi yaptım sadece şöyle bir sorun var, mesela kaydı sildim TBLEMANETIPTCH tablosuna hem sildiğim kaydı hem de farklı bir kayıt daha atıyor onu da düzeltilen kayıt olarak kaydediyor.

ALTER TRIGGER [dbo].[EmanetCariHareketKayit] ON  [dbo].[TBLCAHAR] --WITH ENCRYPTION
FOR UPDATE,DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ACTIONTYPE char(1)=CASE WHEN NOT EXISTS(SELECT * FROM INSERTED) THEN 'D' -- DELETE
                               WHEN NOT EXISTS(SELECT * FROM DELETED)  THEN 'I' -- INSERT
                               ELSE 'U' -- UPDATE
                               END
IF  @ACTIONTYPE ='U'
Begin
UPDATE TBLEMANETIPTCH SET SUBE_KODU=INSERTED.SUBE_KODU,CARI_KOD=INSERTED.CARI_KOD,TARIH=INSERTED.TARIH,VADE_TARIHI=INSERTED.VADE_TARIHI,BELGE_NO=INSERTED.BELGE_NO,
ACIKLAMA=INSERTED.ACIKLAMA,HKA=INSERTED.HKA,BORC=INSERTED.BORC,ALACAK=INSERTED.ALACAK,BAKIYE=INSERTED.BAKIYE,DOVIZ_TURU=INSERTED.DOVIZ_TURU,DOVIZ_TUTAR=INSERTED.DOVIZ_TUTAR,
RAPOR_KODU=INSERTED.RAPOR_KODU,F9SC=INSERTED.F9SC,HAREKET_TURU=INSERTED.HAREKET_TURU,MIKTAR=INSERTED.MIKTAR,ILAVE_RAPOR_KODU=INSERTED.ILAVE_RAPOR_KODU,UPDATE_KODU=INSERTED.UPDATE_KODU,
KAPATILMIS_TUTAR=INSERTED.KAPATILMIS_TUTAR,ODEME_GUNU=INSERTED.ODEME_GUNU,FIRMA_DOVIZ_TIPI=INSERTED.FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI=INSERTED.FIRMA_DOVIZ_TUTARI,PLASIYER_KODU=INSERTED.PLASIYER_KODU,
ENT_REF_KEY=INSERTED.ENT_REF_KEY,INC_KEY=INSERTED.INC_KEY_NUMBER,RAPOR_KODU2=INSERTED.RAPOR_KODU2,DUZELTMETARIHI=INSERTED.DUZELTMETARIHI,S_YEDEK1=INSERTED.S_YEDEK1,S_YEDEK2=INSERTED.S_YEDEK2,
F_YEDEK1=INSERTED.F_YEDEK1,F_YEDEK2=INSERTED.F_YEDEK2,C_YEDEK1=INSERTED.C_YEDEK1,C_YEDEK2=INSERTED.C_YEDEK2,B_YEDEK1=INSERTED.B_YEDEK1,I_YEDEK1=INSERTED.I_YEDEK1,L_YEDEK1=INSERTED.L_YEDEK1,
D_YEDEK1=INSERTED.D_YEDEK1,PROJE_KODU=INSERTED.PROJE_KODU,ONAYTIPI=INSERTED.ONAYTIPI,ONAYNUM=INSERTED.ONAYNUM,BAGLANTI_NO=INSERTED.BAGLANTI_NO FROM TBLEMANETIPTCH 
INNER JOIN INSERTED ON TBLEMANETIPTCH.INC_KEY=INSERTED.INC_KEY_NUMBER
WHERE TBLEMANETIPTCH.INC_KEY=INSERTED.INC_KEY_NUMBER
End
IF @@ROWCOUNT=0 
Begin
INSERT INTO TBLEMANETIPTCH
   (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
    F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
    PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
    C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
    SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
    F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
    PLASIYER_KODU,ENT_REF_KEY,INC_KEY_NUMBER,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
    C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM='Düzeltilen Cari Hareket'
FROM INSERTED WHERE INC_KEY_NUMBER=INSERTED.INC_KEY_NUMBER
End
End
IF  @ACTIONTYPE ='D'
BEGIN
INSERT INTO TBLEMANETIPTCH (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
  F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
  PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
  C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
  D.SUBE_KODU,D.CARI_KOD,D.TARIH,D.VADE_TARIHI,D.BELGE_NO,D.ACIKLAMA,D.HKA,D.BORC,D.ALACAK,D.BAKIYE,D.DOVIZ_TURU,D.DOVIZ_TUTAR,D.RAPOR_KODU,D.
  F9SC,D.HAREKET_TURU,D.MIKTAR,D.ILAVE_RAPOR_KODU,D.UPDATE_KODU,D.KAPATILMIS_TUTAR,D.ODEME_GUNU,D.FIRMA_DOVIZ_TIPI,D.FIRMA_DOVIZ_TUTARI,D.
  PLASIYER_KODU,D.ENT_REF_KEY,D.INC_KEY_NUMBER,D.RAPOR_KODU2,D.DUZELTMETARIHI,D.S_YEDEK1,D.S_YEDEK2,D.F_YEDEK1,D.F_YEDEK2,D.C_YEDEK1,D.
  C_YEDEK2,D.B_YEDEK1,D.I_YEDEK1,D.L_YEDEK1,D.D_YEDEK1,D.PROJE_KODU,D.ONAYTIPI,D.ONAYNUM,D.BAGLANTI_NO,DURUM='İptal Edilen Cari Hareket'
FROM DELETED D WHERE D.INC_KEY_NUMBER=D.INC_KEY_NUMBER 
End

INC_KEY de tek kayıt "12426" sildim peşine "12581" kaydetti.

"13717" ilk önce düzelttim kaydetti sonra aynı kaydı sildim "7952" kaydetti. Anlayamadım. INC_KEY_NUMBER eşitledim yine olmadı.


Ek Dosyalar Resimler
   
Cevapla
#46
Merhaba sen iki defa kayıt yapmıssın. asağıdakı gıbı olması lazım ama bir sorun var.
EmanetCariHareketKayit ve TBLEMANETIPTCH  tablosu hangı alan ıle eslesıyor? EmanetCariHareketKayit tablondakı primary sutun nedir?
Eğer INC_KEY primary alan ise, TBLEMANETIPTCH tablosunda INC_KEY diye bır alanın varsa bu otomatık olmamalı.
EmanetCariHareketKayit tablosunda INC_KEY otomatık olur ve TBLEMANETIPTCH tablosuna eklenır.
ıkı tablonun yapısını belırtırsen daha cok yardımcı olurum.

ALTER TRIGGER [dbo].[EmanetCariHareketKayit] ON  [dbo].[TBLCAHAR] --WITH ENCRYPTION
FOR UPDATE,DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ACTIONTYPE char(1)=CASE WHEN NOT EXISTS(SELECT * FROM INSERTED) THEN 'D' -- DELETE
                              WHEN NOT EXISTS(SELECT * FROM DELETED)  THEN 'I' -- INSERT
                              ELSE 'U' -- UPDATE
                              END

IF @ACTIONTYPE ='U'
Begin
DELETE FROM TBLEMANETIPTCH 
WHERE INC_KEY_NUMBER IN (SELECT INC_KEY_NUMBER FROM INSERTED)

INSERT INTO TBLEMANETIPTCH
   (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
   F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
   PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
   C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
   SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
   F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
   PLASIYER_KODU,ENT_REF_KEY,INC_KEY_NUMBER,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
   C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,'Düzeltilen Cari Hareket'
FROM INSERTED I
End


IF  @ACTIONTYPE ='D'
BEGIN
DELETE FROM TBLEMANETIPTCH 
WHERE INC_KEY_NUMBER IN (SELECT INC_KEY_NUMBER FROM DELETED)

INSERT INTO TBLEMANETIPTCH 
 (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
 F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
 PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
 C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
 D.SUBE_KODU,D.CARI_KOD,D.TARIH,D.VADE_TARIHI,D.BELGE_NO,D.ACIKLAMA,D.HKA,D.BORC,D.ALACAK,D.BAKIYE,D.DOVIZ_TURU,D.DOVIZ_TUTAR,D.RAPOR_KODU,D.
 F9SC,D.HAREKET_TURU,D.MIKTAR,D.ILAVE_RAPOR_KODU,D.UPDATE_KODU,D.KAPATILMIS_TUTAR,D.ODEME_GUNU,D.FIRMA_DOVIZ_TIPI,D.FIRMA_DOVIZ_TUTARI,D.
 PLASIYER_KODU,D.ENT_REF_KEY,D.INC_KEY_NUMBER,D.RAPOR_KODU2,D.DUZELTMETARIHI,D.S_YEDEK1,D.S_YEDEK2,D.F_YEDEK1,D.F_YEDEK2,D.C_YEDEK1,D.
 C_YEDEK2,D.B_YEDEK1,D.I_YEDEK1,D.L_YEDEK1,D.D_YEDEK1,D.PROJE_KODU,D.ONAYTIPI,D.ONAYNUM,D.BAGLANTI_NO,DURUM='İptal Edilen Cari Hareket'
FROM DELETED D
End
Cevapla
#47
(24-12-2020, Saat: 10:00)serdar Adlı Kullanıcıdan Alıntı: Merhaba sen iki defa kayıt yapmıssın. asağıdakı gıbı olması lazım ama bir sorun var.
EmanetCariHareketKayit ve TBLEMANETIPTCH  tablosu hangı alan ıle eslesıyor? EmanetCariHareketKayit tablondakı primary sutun nedir?
Eğer INC_KEY primary alan ise, TBLEMANETIPTCH tablosunda INC_KEY diye bır alanın varsa bu otomatık olmamalı.
EmanetCariHareketKayit tablosunda INC_KEY otomatık olur ve TBLEMANETIPTCH tablosuna eklenır.
ıkı tablonun yapısını belırtırsen daha cok yardımcı olurum.

ALTER TRIGGER [dbo].[EmanetCariHareketKayit] ON  [dbo].[TBLCAHAR] --WITH ENCRYPTION
FOR UPDATE,DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ACTIONTYPE char(1)=CASE WHEN NOT EXISTS(SELECT * FROM INSERTED) THEN 'D' -- DELETE
                              WHEN NOT EXISTS(SELECT * FROM DELETED)  THEN 'I' -- INSERT
                              ELSE 'U' -- UPDATE
                              END

IF @ACTIONTYPE ='U'
Begin
DELETE FROM TBLEMANETIPTCH 
WHERE INC_KEY_NUMBER IN (SELECT INC_KEY_NUMBER FROM INSERTED)

INSERT INTO TBLEMANETIPTCH
   (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
   F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
   PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
   C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
   SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
   F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
   PLASIYER_KODU,ENT_REF_KEY,INC_KEY_NUMBER,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
   C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,'Düzeltilen Cari Hareket'
FROM INSERTED I
End


IF  @ACTIONTYPE ='D'
BEGIN
DELETE FROM TBLEMANETIPTCH 
WHERE INC_KEY_NUMBER IN (SELECT INC_KEY_NUMBER FROM DELETED)

INSERT INTO TBLEMANETIPTCH 
 (SUBE_KODU,CARI_KOD,TARIH,VADE_TARIHI,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK,BAKIYE,DOVIZ_TURU,DOVIZ_TUTAR,RAPOR_KODU,
 F9SC,HAREKET_TURU,MIKTAR,ILAVE_RAPOR_KODU,UPDATE_KODU,KAPATILMIS_TUTAR,ODEME_GUNU,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,
 PLASIYER_KODU,ENT_REF_KEY,INC_KEY,RAPOR_KODU2,DUZELTMETARIHI,S_YEDEK1,S_YEDEK2,F_YEDEK1,F_YEDEK2,C_YEDEK1,
 C_YEDEK2,B_YEDEK1,I_YEDEK1,L_YEDEK1,D_YEDEK1,PROJE_KODU,ONAYTIPI,ONAYNUM,BAGLANTI_NO,DURUM)
SELECT
 D.SUBE_KODU,D.CARI_KOD,D.TARIH,D.VADE_TARIHI,D.BELGE_NO,D.ACIKLAMA,D.HKA,D.BORC,D.ALACAK,D.BAKIYE,D.DOVIZ_TURU,D.DOVIZ_TUTAR,D.RAPOR_KODU,D.
 F9SC,D.HAREKET_TURU,D.MIKTAR,D.ILAVE_RAPOR_KODU,D.UPDATE_KODU,D.KAPATILMIS_TUTAR,D.ODEME_GUNU,D.FIRMA_DOVIZ_TIPI,D.FIRMA_DOVIZ_TUTARI,D.
 PLASIYER_KODU,D.ENT_REF_KEY,D.INC_KEY_NUMBER,D.RAPOR_KODU2,D.DUZELTMETARIHI,D.S_YEDEK1,D.S_YEDEK2,D.F_YEDEK1,D.F_YEDEK2,D.C_YEDEK1,D.
 C_YEDEK2,D.B_YEDEK1,D.I_YEDEK1,D.L_YEDEK1,D.D_YEDEK1,D.PROJE_KODU,D.ONAYTIPI,D.ONAYNUM,D.BAGLANTI_NO,DURUM='İptal Edilen Cari Hareket'
FROM DELETED D
End

Serdar kardeşim Allah senden razı olsun. Hakkını helal et. 
Tablo yapısı şöyle;
İki tane Tablo var 
TBLCAHAR tablosu kayıtların tutulduğu alan INC_KEY_NUMBER alanı Primary 
TBLEMANETIPTCH buradaki INC_KEY primary alan değil. 
TBLCAHAR dan TBLEMANETIPTCH kayıt atıyor hem silinen hem de düzeltilen. TBLCAHAR daki INC_KEY_NUMBER alanı aynen INC_KEY kaydediyor.

Düzeltme ve Kayıt kısmı doğru sadece silmede şöyle yine silinen kayıttan sonra farklı bir kayıt atıyor.


Ek Dosyalar Resimler
   
Cevapla
#48
Senden de Allah razi olsun.
TBLEMANETIPTCH tablosunda herhangi bir trigger varmi?
Cevapla
#49
(24-12-2020, Saat: 20:08)serdar Adlı Kullanıcıdan Alıntı: Senden de Allah razi olsun.
TBLEMANETIPTCH tablosunda herhangi bir trigger varmi?

Hayır yok.
Cevapla
#50
En son attigim kodu aynen kullan. Ordaki if @@rowcount satirini cikarttim. Fazladan kayit atmamasi lazim. Acaba application tarafinda delete yaptiktan sonra update kodu gibi birsey calisyor olabilirmi?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Gmail Mail Gönderirken Connection Gracefuly Hatası COMMANDX 0 221 02-02-2024, Saat: 15:21
Son Yorum: COMMANDX
  dxRichEditControl Resim Kaydı m_ekici 0 225 31-10-2023, Saat: 01:42
Son Yorum: m_ekici
  Otomatik Rapor Mail gonulali 5 1.287 20-02-2023, Saat: 16:25
Son Yorum: gonulali
  text bölüp edit1, edit2, edit3 .... atma erdogan 6 981 16-02-2023, Saat: 11:52
Son Yorum: erdogan
  PaintBox resmi frx reporta atma erdogan 3 656 29-12-2022, Saat: 02:21
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi