Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Silinen Kaydı Mail Atma
#1
Arkadaşlar Merhaba; Herkese Sağlıklı günler diliyorum.
SQL Tabloda silinen kaydın bilgisini mail atmak istiyorum ama bir türlü beceremedim yardımcı olur musunuz?
ALTER trigger [dbo].[EmanetFaturaSil] on [dbo].[TBLFATUIRS]
After delete
As
Begin
Declare @SUBEKODU smallint
Declare @FTIRSIP char(1)
Declare @FATIRSNO varchar(15)
Declare @CARIKODU varchar(15)
Declare @TARIH datetime
Declare @TIPI   tinyint
Declare @BRUTTUTAR   decimal(28,8)
Declare @SATISKT   decimal(28,8)
Declare @MFAZISKT   decimal(28,8)
Declare @GENISK1T   decimal(28,8)
Declare @GENISK2T   decimal(28,8)
Declare @GENISK3T   decimal(28,8)
Declare @GENISK1O   decimal(28,8)
Declare @GENISK2O   decimal(28,8)
Declare @GENISK3O   decimal(28,8)
Declare @KDV   decimal(28,8)
Declare @FATALTM1   decimal(28,8)
Declare @FATALTM2   decimal(28,8)
Declare @ACIKLAMA   varchar(20)
Declare @KOD1   char(1)
Declare @KOD2   char(1)
Declare @ODEMEGUNU   smallint
Declare @ODEMETARIHI   datetime
Declare @KDVDAHILMI   char(1)
Declare @FATKALEMADEDI   smallint
Declare @SIPARISTEST   datetime
Declare @TOPLAMMIK   decimal(15,5)
Declare @TOPDEPO   smallint
Declare @YEDEK22   varchar(2)
Declare @CARIKOD2   varchar(15)
Declare @YEDEK   char(1)
Declare @UPDATEKODU   char(1)
Declare @SIRANO   int
Declare @KDVDAHILBRUTTOP   decimal(28,8)
Declare @KDVTENZIL   decimal(28,8)
Declare @MALFAZLASIKDVSI   decimal(28,8)
Declare @GENELTOPLAM   decimal(28,8)
Declare @YUVARLAMA   decimal(28,8)
Declare @SATISKOND   varchar(4)
Declare @PLAKODU   varchar(8)
Declare @DOVIZTIP   tinyint
Declare @DOVIZTUT   decimal(28,8)
Declare @KSKODU   varchar(8)
Declare @BAGTUTAR   decimal(28,8)
Declare @YEDEK2   varchar(7)
Declare @HIZMETFAT   char(1)
Declare @VADEBAZT   datetime
Declare @KAPATILMIS   char(1)
Declare @SYEDEK1   varchar(15)
Declare @SYEDEK2   varchar(8)
Declare @FYEDEK3   decimal(28,8)
Declare @FYEDEK4   decimal(28,8)
Declare @FYEDEK5   decimal(28,8)
Declare @CYEDEK6   char(1)
Declare @BYEDEK7   tinyint
Declare @IYEDEK8   smallint
Declare @LYEDEK9   int
Declare @AMBARKBLNO   varchar(15)
Declare @DYEDEK10   datetime
Declare @PROJEKODU   varchar(15)
Declare @KOSULKODU   varchar(8)
Declare @FIYATTARIHI   datetime
Declare @KOSULTARIHI   datetime
Declare @GENISK1TIP   smallint
Declare @GENISK2TIP   smallint
Declare @GENISK3TIP   smallint
Declare @EXPORTTYPE   tinyint
Declare @EXGUMRUKNO   varchar(20)
Declare @EXGUMTARIH   datetime
Declare @EXFIILITARIH   datetime
Declare @EXPORTREFNO   varchar(20)
Declare @KAYITYAPANKUL   varchar(12)
Declare @KAYITTARIHI   datetime
Declare @DUZELTMEYAPANKUL   varchar(12)
Declare @DUZELTMETARIHI   datetime
Declare @GELSUBEKODU   smallint
Declare @GITSUBEKODU   smallint
Declare @ONAYTIPI   char(1)
Declare @ONAYNUM   int
Declare @ISLETMEKODU   smallint
Declare @ODEKOD   varchar(8)
Declare @BRMALIYET   decimal(28,8)
Declare @KOSVADEGUNU   smallint
Declare @YAPKOD   varchar(15)
Declare @GIBFATIRSNO   varchar(16)
Declare @EXTERNALAPPID   varchar(50)
Declare @EXTERNALREFID   varchar(50)
Declare @EBELGE int
Declare @HALFAT int
Declare @FATALTM3 decimal(28,8)

Select @SUBEKODU=SUBE_KODU from deleted
Select @FTIRSIP=FTIRSIP from deleted
Select @FATIRSNO=FATIRS_NO from deleted
Select @CARIKODU=CARI_KODU from deleted
Select @TARIH=TARIH from deleted
Select @TIPI=TIPI from deleted
Select @BRUTTUTAR=BRUTTUTAR from deleted
Select @SATISKT=SAT_ISKT from deleted
Select @MFAZISKT=MFAZ_ISKT from deleted
Select @GENISK1T=GEN_ISK1T from deleted
Select @GENISK2T=GEN_ISK2T from deleted
Select @GENISK3T=GEN_ISK3T from deleted
Select @GENISK1O=GEN_ISK1O from deleted
Select @GENISK2O=GEN_ISK2O from deleted
Select @GENISK3O=GEN_ISK3O from deleted
Select @KDV=KDV from deleted
Select @FATALTM1=FAT_ALTM1 from deleted
Select @FATALTM2=FAT_ALTM2 from deleted
Select @ACIKLAMA=ACIKLAMA from deleted
Select @KOD1=KOD1 from deleted
Select @KOD2=KOD2 from deleted
Select @ODEMEGUNU=ODEMEGUNU from deleted
Select @ODEMETARIHI=ODEMETARIHI from deleted
Select @KDVDAHILMI=KDV_DAHILMI from deleted
Select @FATKALEMADEDI=FATKALEM_ADEDI from deleted
Select @SIPARISTEST=SIPARIS_TEST from deleted
Select @TOPLAMMIK=TOPLAM_MIK from deleted
Select @TOPDEPO=TOPDEPO from deleted
Select @YEDEK22=YEDEK22 from deleted
Select @CARIKOD2=CARI_KOD2 from deleted
Select @YEDEK=YEDEK from deleted
Select @UPDATEKODU=UPDATE_KODU from deleted
Select @SIRANO=SIRANO from deleted
Select @KDVDAHILBRUTTOP=KDV_DAHIL_BRUT_TOP from deleted
Select @KDVTENZIL=KDV_TENZIL from deleted
Select @MALFAZLASIKDVSI=MALFAZLASIKDVSI from deleted
Select @GENELTOPLAM=GENELTOPLAM from deleted
Select @YUVARLAMA=YUVARLAMA from deleted
Select @SATISKOND=SATIS_KOND from deleted
Select @PLAKODU=PLA_KODU from deleted
Select @DOVIZTIP=DOVIZTIP from deleted
Select @DOVIZTUT=DOVIZTUT from deleted
Select @KSKODU=KS_KODU from deleted
Select @BAGTUTAR=BAG_TUTAR from deleted
Select @YEDEK2=YEDEK2 from deleted
Select @HIZMETFAT=HIZMET_FAT from deleted
Select @VADEBAZT=VADEBAZT from deleted
Select @KAPATILMIS=KAPATILMIS from deleted
Select @SYEDEK1=S_YEDEK1 from deleted
Select @SYEDEK2=S_YEDEK2 from deleted
Select @FYEDEK3=F_YEDEK3 from deleted
Select @FYEDEK4=F_YEDEK4 from deleted
Select @FYEDEK5=F_YEDEK5 from deleted
Select @CYEDEK6=C_YEDEK6 from deleted
Select @BYEDEK7=B_YEDEK7 from deleted
Select @IYEDEK8=I_YEDEK8 from deleted
Select @LYEDEK9=L_YEDEK9 from deleted
Select @AMBARKBLNO=AMBAR_KBLNO from deleted
Select @DYEDEK10=D_YEDEK10 from deleted
Select @PROJEKODU=PROJE_KODU from deleted
Select @KOSULKODU=KOSULKODU from deleted
Select @FIYATTARIHI=FIYATTARIHI from deleted
Select @KOSULTARIHI=KOSULTARIHI from deleted
Select @GENISK1TIP=GENISK1TIP from deleted
Select @GENISK2TIP=GENISK2TIP from deleted
Select @GENISK3TIP=GENISK3TIP from deleted
Select @EXPORTTYPE=EXPORTTYPE from deleted
Select @EXGUMRUKNO=EXGUMRUKNO from deleted
Select @EXGUMTARIH=EXGUMTARIH from deleted
Select @EXFIILITARIH=EXFIILITARIH from deleted
Select @EXPORTREFNO=EXPORTREFNO from deleted
Select @KAYITYAPANKUL=KAYITYAPANKUL from deleted
Select @KAYITTARIHI=KAYITTARIHI from deleted
Select @DUZELTMEYAPANKUL=DUZELTMEYAPANKUL from deleted
Select @DUZELTMETARIHI=DUZELTMETARIHI from deleted
Select @GELSUBEKODU=GELSUBE_KODU from deleted
Select @GITSUBEKODU=GITSUBE_KODU from deleted
Select @ONAYTIPI=ONAYTIPI from deleted
Select @ONAYNUM=ONAYNUM from deleted
Select @ISLETMEKODU=ISLETME_KODU from deleted
Select @ODEKOD=ODEKOD from deleted
Select @BRMALIYET=BRMALIYET from deleted
Select @KOSVADEGUNU=KOSVADEGUNU from deleted
Select @YAPKOD=YAPKOD from deleted
Select @GIBFATIRSNO=GIB_FATIRS_NO from deleted
Select @EXTERNALAPPID=EXTERNALAPPID from deleted
Select @EXTERNALREFID=EXTERNALREFID from deleted
Select @EBELGE from deleted
Select @HALFAT from deleted
Select @FATALTM3 from deleted

Insert into TBLEMANETIPTFAT  
values
(@SUBEKODU,
@FTIRSIP,
@FATIRSNO,
@CARIKODU,
@TARIH,
@TIPI,
@BRUTTUTAR,
@SATISKT,
@MFAZISKT,
@GENISK1T,
@GENISK2T,
@GENISK3T,
@GENISK1O,
@GENISK2O,
@GENISK3O,
@KDV,
@FATALTM1,
@FATALTM2,
@ACIKLAMA,
@KOD1,
@KOD2,
@ODEMEGUNU,
@ODEMETARIHI,
@KDVDAHILMI,
@FATKALEMADEDI,
@SIPARISTEST,
@TOPLAMMIK,
@TOPDEPO,
@YEDEK22,
@CARIKOD2,
@YEDEK,
@UPDATEKODU,
@SIRANO,
@KDVDAHILBRUTTOP,
@KDVTENZIL,
@MALFAZLASIKDVSI,
@GENELTOPLAM,
@YUVARLAMA,
@SATISKOND,
@PLAKODU,
@DOVIZTIP,
@DOVIZTUT,
@KSKODU,
@BAGTUTAR,
@YEDEK2,
@HIZMETFAT,
@VADEBAZT,
@KAPATILMIS,
@SYEDEK1,
@SYEDEK2,
@FYEDEK3,
@FYEDEK4,
@FYEDEK5,
@CYEDEK6,
@BYEDEK7,
@IYEDEK8,
@LYEDEK9,
@AMBARKBLNO,
@DYEDEK10,
@PROJEKODU,
@KOSULKODU,
@FIYATTARIHI,
@KOSULTARIHI,
@GENISK1TIP,
@GENISK2TIP,
@GENISK3TIP,
@EXPORTTYPE,
@EXGUMRUKNO,
@EXGUMTARIH,
@EXFIILITARIH,
@EXPORTREFNO,
@KAYITYAPANKUL,
@KAYITTARIHI,
@DUZELTMEYAPANKUL,
@DUZELTMETARIHI,
@GELSUBEKODU,
@GITSUBEKODU,
@ONAYTIPI,
@ONAYNUM,
@ISLETMEKODU,
@ODEKOD,
@BRMALIYET,
@KOSVADEGUNU,
@YAPKOD,
@GIBFATIRSNO,
@EXTERNALAPPID,
@EXTERNALREFID,
@EBELGE,
@HALFAT,
@FATALTM3)

Declare @msg Char(50)

set @msg=(select FATIRS_NO from TBLEMANETIPTFAT  where @FATIRSNO=FATIRS_NO)

EXECUTE msdb.dbo.sp_send_dbmail
exec msdb.dbo.sp_send_dbmail 
@profile_name = 'Destek',
@recipients = 'maildestek@gmail.com',
@subject = 'Silinen Fatura',
@body = @msg,
@body_format = 'text'
end
Cevapla
#2
Merhaba,
Bu kadar değişkene gerek yok bence."CONCAT" fonksiyonu ile kayıtları birleştirip gönderebilirsin. 
silinen kayıt birden cok olabılecegı icin cross apply fonksiyonu ile parametre olara verıp gonderebilirsin
şöyle olablilir.


CREATE PROCEDURE dbo.Mailat(@msg varchar(8000))
AS
BEGIN
EXEC msdb.dbo.sp_send_dbmail @profile_name='Destek',
                              @recipients='maildestek@gmail.com',
                              @subject='SILINEN KAYITLAR',
                              @body=@msg,
                              @body_format = 'text'
END


ALTER trigger [dbo].[EmanetFaturaSil] on [dbo].[TBLFATUIRS]

After delete
As
Begin


 DECLARE @msg varchar(8000)=NULL;

 SELECT  @msg=CONCAT ('sube kodu:',d.SUBE_KODU,' --  ', 'cari kodu:',d.CARI_KODU,CHAR(10)) -- ıstedıgın kadar sutun devam ettırebılırsın
 FROM DELETED D
 CROSS APPLY Mailat(@msg)

--alt satıra gecmesi için CHAR(10) kullandık enson sutundan sonra.

 return 0 --bunun ile herhangı select ıfadesı donmemesı ıcın kullanılr

end
Cevapla
#3
Buraya Cari kodu  eşleyebilir miyim? cari isim yazdırmak için.
SELECT  @msg=CONCAT ('sube kodu:',d.SUBE_KODU,' --  ', 'cari kodu:',d.CARI_KODU,CHAR(10)) -- ıstedıgın kadar sutun devam ettırebılırsın
Join TBLCASABIT C ON C.CARI_KOD=D.CARI_KODU
FROM DELETED D
CROSS APPLY Mailat(@msg)
Cevapla
#4
(13-12-2020, Saat: 14:47)OZCANK Adlı Kullanıcıdan Alıntı: Buraya Cari kodu  eşleyebilir miyim? cari isim yazdırmak için.
SELECT  @msg=CONCAT ('sube kodu:',d.SUBE_KODU,' --  ', 'cari kodu:',d.CARI_KODU,CHAR(10)) -- ıstedıgın kadar sutun devam ettırebılırsın
Join TBLCASABIT C ON C.CARI_KOD=D.CARI_KODU
FROM DELETED D
CROSS APPLY Mailat(@msg)

join ifadesini from dan sonra yazmalısın

eger atacagın mail tek bir kayıt içeriyorsa cross apply kullanmana gerek yok dırek soyle kullan

SELECT  @msg=CONCAT ('sube kodu:',d.SUBE_KODU,' --  ', 'cari kodu:',d.CARI_KODU,CHAR(10)) -- ıstedıgın kadar sutun devam ettırebılırsın
FROM DELETED D
Join TBLCASABIT C ON C.CARI_KOD=D.CARI_KODU

EXEC msdb.dbo.sp_send_dbmail @profile_name='Destek',
                             @recipients='maildestek@gmail.com',
                             @subject='SILINEN KAYITLAR',
                             @body=@msg,
                             @body_format = 'text'
Cevapla
#5
Burda da hata verdi sildim ama.
CROSS APPLY Mailat(@msg)
Cevapla
#6
(13-12-2020, Saat: 14:51)OZCANK Adlı Kullanıcıdan Alıntı: Burda da hata verdi sildim ama.
CROSS APPLY Mailat(@msg)

orda procedure degılde select donduren fonksıyon ıstıyor yenı farkettım
sen soyle kullan

SELECT  @msg=CONCAT ('sube kodu:',d.SUBE_KODU,' --  ', 'cari kodu:',d.CARI_KODU,CHAR(10)) -- ıstedıgın kadar sutun devam ettırebılırsın
FROM DELETED D
Join TBLCASABIT C ON C.CARI_KOD=D.CARI_KODU

EXEC msdb.dbo.sp_send_dbmail @profile_name='Destek',
                            @recipients='maildestek@gmail.com',
                            @subject='SILINEN KAYITLAR',
                            @body=@msg,
                            @body_format = 'text'
Cevapla
#7
Kardeşim çok teşekkür ederim son bir şey daha rica edecem peki UPDATE olursa nasıl değiştirebilirim? Oldu ki faturayı düzeltti.
Cevapla
#8
(13-12-2020, Saat: 14:58)OZCANK Adlı Kullanıcıdan Alıntı: Kardeşim çok teşekkür ederim son bir şey daha rica edecem peki UPDATE olursa nasıl değiştirebilirim? Oldu ki faturayı düzeltti.

fatura duzelttikten sonraki halinimi yoksa duzeltmeden onceki halinim?
Cevapla
#9
önceki ve sonraki olarak ayarlamak istiyorum.
Cevapla
#10
after update trıggerı ekle ve sunu yaz

DECLARE @msg1 varchar(8000)=NULL, 
        @msg2 varchar(8000)=NULL; 

SELECT  @msg1=CONCAT ('düzelttikten sonrakki kayıt',char(10),'sube kodu:',i.SUBE_KODU,' --  ', 'cari kodu:',i.CARI_KODU)-- ıstedıgın kadar sutun devam ettırebılırsın
        @msg2=CONCAT ('düzeltmeden önceki kayıt',char(10),'sube kodu:',d.SUBE_KODU,' --  ', 'cari kodu:',d.CARI_KODU) -- ıstedıgın kadar sutun devam ettırebılırsın
FROM inserted i
join deleted d on d.CARI_KODU=i.CARI_KODU -- dikkat burası alanı senın primary sutunun olacak. galiba sende CARI_KODU
Join TBLCASABIT C ON C.CARI_KOD=i.CARI_KODU

EXEC msdb.dbo.sp_send_dbmail @profile_name='Destek',
                           @recipients='maildestek@gmail.com',
                           @subject='düzeltme kaydı',
                           @body=concat(@msg1,char(10),@msg2)
                           @body_format = 'text
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Gmail OAuth Mail Alma resatarikan 5 578 10-01-2021, Saat: 22:21
Son Yorum: resatarikan
Question Curl - Sendinblue Mail Gönderme elixir84 5 2.792 03-11-2020, Saat: 10:39
Son Yorum: ibrahim.aydin@perga.com.tr
  Mail Gönderiminde User Authentication Metodu samsaros@gmail.com 16 3.293 19-10-2020, Saat: 17:22
Son Yorum: samsaros@gmail.com
  Girilen kaydı kapatıp açmadan göremiyoruz. boreas 9 1.925 29-05-2020, Saat: 09:07
Son Yorum: boreas
  HHBMailComponent - Kolay Mail Gönderim Bileşeni [Delphi] Halil Han BADEM 38 17.167 23-01-2020, Saat: 09:18
Son Yorum: SimaWB



Konuyu Okuyanlar: 1 Ziyaretçi