Forum
Merhabalar,
SQL server 2016 kullanıyorum. ABC isimli bir tablom var. Tablomda, KayitID (int), Detay (nvarchar(100)) ve Durum (int) alanlarım mevcut. ABC tablosunda herhangi bir kayıta ait Durum alanı 2 olduğunda mail gitsin istiyorum. Aslında kayıtta herhangi bir değişiklik olduğunda mail gönderilmesini yaptım. Fakat bir şarta bağlı olarak bir türlü başaramadım. If v.s. kullandım ama olmadı. Birde mailin subject alanına KayitID yi yazdırıyorum fakat mailde hep aynı kayıtın numarası geliyor. Bu konuda bir öneriniz var mıdır? Şu an üzerinde çalıştığım kodlar aşağıdadır.
CREATE TRIGGER Mail2 ON ABC
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@KayitID int,
@Detay nvarchar (100),
@Durum int,
@subject int,
@body nvarchar (100)
SELECT @KayitID= KayitID, @Detay= Detay, @Durum= Durum, @body = 'Tamamlandı' + ' ' + @Detay FROM ABC
IF @Durum= 3
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = '[email protected]',
@profile_name = 'public',
@subject = @KayitID,
@body = @body
END
END
Tekrar Merhaba,
Cevabınız için çok teşekkür ederim Yavuz Bey. Önerinizi deneyeceğim fakat benim anlamadığım nokta şu zaten benim tablomda durum alanında aslında benzer durum söz konusu. Yani durum alanı örneğin 3 olduğunda mail gitsin istiyorum. Sizin dediğiniz şekilde mailgonderildi alanı oluşturduğumda bu alan 0 ise gönder diyeceğim açıkçası aralarındaki farkı anlamadım. Anlamak adına soruyorum IF @MailGonderildi = 0 Begin "mail gönder" şeklinde mi yapmalıyım. Açıkçası aslında bu kısımda takılıyorum. Ben yaptığım IF @Durum = 3 Begin "mail gönder" yapmıştım. Ayrıca bir sorum daha olacak. Subject alanına tablodaki ilk alanı yani KayitID alanını yazdırmak iştediğimde her mailde aynı KayıtID numarası yazıyor. Bu ne ile ilgili olabilir? Yardımınızı rica ederim. İyi çalışmalar.
Saygılarımla.
Erkan.