Forum

SQL 2012 mail g...
 
Bildirimler
Hepsini Temizle

SQL 2012 mail gönderme hakkında.

8 Yazılar
2 Üyeler
0 Likes
1,112 Görüntüleme
(@alialiskan)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Merhaba Oluşturduğum stored procedure 'yi otomatik mail gönderebilirmiyim böyle bir imkanımız var mı. Gerekli configure'yi yaptım aşağıdaki kod ile manuel basit bir sorguyu manuel test maili atabiliyorum. Bu konuda daha önce bir tecrübem yok.Yardımlarınız için şimdiden teşekkürler.

EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'ali',

@recipients = '[email protected]',

@query = 'SELECT * FROM deneme' ,

@subject = 'test',

@attach_query_result_as_file = 1 ;

 
Gönderildi : 05/02/2013 20:49

(@HakanUSTUN)
Gönderiler: 98
Estimable Member
 

CREATE PROCEDURE xp_CDOMailGonder(
    @Kimden varchar(100),
    @Kime varchar(255),
    @Baslik varchar(255),
    @Mesaj varchar(500)
) AS
DECLARE @Obj int, @OLESonuc int
EXECUTE @OLESonuc = sp_OACreate 'CDONTS.NewMail', @Obj OUT
execute @OLESonuc = sp_OAMethod @Obj, 'Send', Null, @Kimden, @Kime, @Baslik, @Mesaj, 0
EXECUTE @OLESonuc = sp_OADestroy @Obj
return @OLESonuc

 
Gönderildi : 05/02/2013 21:46

(@alialiskan)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Cevabınız için teşekkürler. Daha önce böyle bir uygulama yapmadım.İnternetten araştırarakta belli bir noktaya kadar gelebildim.Yapı böyle olacak sanırım. Peki ben bu sorgu yapısını nerede çalıştırmam gerekiyor.New Jop Step penceresinde Transact-SQL script(T-SQL) seçip burdamı çalıştırmam gerekli.Yazdığım Proceduredeki sorguyu günün belli saatlerinde mail atmak istiyorum.Yardımcı olabilirmisiniz.

Teşekkürler. 

 
Gönderildi : 06/02/2013 02:06

(@HakanUSTUN)
Gönderiler: 98
Estimable Member
 

sql management studio açın new query tikliyoruz ve üstteki proceduru boş ekrana yapıştırın gerekirse kendinize göre düzenleyin  eğer sistemde farklı database mevcutsa use databaseismi ile kullanmak istediğiniz database seçin sonra boş query ekranına yapıştırdığınız proceduru F5 ile çalıştırıp yaratılmasını sağlayın yaratılıp yaratılmadığını kontrol için database genişletip programmability altında stored procedures altina bakin orda procedurunuz eğer genişletirsenizde alacağı değerler ekranda gözükür daha sonra proceduru çalıştırma komutu  exec parametreler şeklindedir  bu proceduru script olarak kaydedip sql Server Agent çalıştırıp oraya job olarak kaydedip çalıştırabilirsiniz R2 sürüme sahipseniz orada admin Notification için ayrıca mail tanımıda vardır job tanımı için şu linki lütfen inceleyeniz aşağılarda bir yerde  executing the sp_start_job stored procedure. yazan yerde bilgi veriyor ben daha önce hiç böyle bir şey yapmadım sadece bildiğim kadariyla çözüm üretmeye çalıştım

http://technet.microsoft.com/en-us/library/ms189237.aspx

 
Gönderildi : 06/02/2013 03:38

(@alialiskan)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Merhaba; Epey uğraştım işin içinden çıkamadım. Ama şu noktaya kadar geldim, aşagıdaki ilgili kodu. New Jop Step penceresinde Transact-SQL script(T-SQL) seçip alana yapıştırınca basit sorguyu istediğim saatte otomatik mail atıyor. Ama sorguyu detaylandırınca kabul etmiyor. Stored Procudere'yi buraya gömmenin bir yolu olsa keşke. Veya sorguyu çalıştırabilsem.

EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'ali',

@recipients = '[email protected]',

@query = 'SELECT * FROM deneme' ,

@subject = 'test',

@attach_query_result_as_file = 1 ;

 
Gönderildi : 06/02/2013 19:01

(@HakanUSTUN)
Gönderiler: 98
Estimable Member
 

Merhaba; Epey uğraştım işin içinden çıkamadım. Ama şu noktaya kadar geldim, aşagıdaki ilgili kodu. New Jop Step penceresinde Transact-SQL script(T-SQL) seçip alana yapıştırınca basit sorguyu istediğim saatte otomatik mail atıyor. Ama sorguyu detaylandırınca kabul etmiyor. Stored Procudere'yi buraya gömmenin bir yolu olsa keşke. Veya sorguyu çalıştırabilsem.

EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'ali',

@recipients = '[email protected]',

@query = 'SELECT * FROM deneme' ,

@subject = 'test',

@attach_query_result_as_file = 1 ;

 

sorguyu detaylandırmak derken o kismi anlamadım detaylandırdığı halini atip birde hatayı tam olarak söylerseniz beraber bir çözüm üretmeye çalışalım stored procedur zaten programbility altında kayitli halde kalir yada script olarak alip dışardan execute edebilirsiniz hiç bir şey yapılamıyorsa 3 ncü parti sql toolları ile yapılabilir hatta fonksiyon bile yazılabilir gibi geliyor bana

 
Gönderildi : 06/02/2013 19:45

(@alialiskan)
Gönderiler: 5
Active Member
Konu başlatıcı
 

EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'ali',

@recipients = '[email protected]',

@query = 'SELECT sube, sum (tutar )-sum(iskonto)as TOPLAM

 FROM dbo.STOKHAREKET 
where CIKIS ('1') AND tarih between '2013-01-01' and '2013-01-31'

   group by sube' ,

@subject = 'test',

@attach_query_result_as_file = 1 ; 
 
 
 
 
Örneğin böyle bir sorgu  , Sanırım where 'den sonrasını yapamıyorum veya şartların böyle verilmemesi gerekiyor. 
 
Gönderildi : 07/02/2013 02:03

(@HakanUSTUN)
Gönderiler: 98
Estimable Member
 

EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'ali',

@recipients = '[email protected]',

@query = 'SELECT sube, sum (tutar )-sum(iskonto)as TOPLAM

 FROM dbo.STOKHAREKET 
where CIKIS ('1') AND tarih between '2013-01-01' and '2013-01-31'

   group by sube' ,

 

@subject = 'test',

@attach_query_result_as_file = 1 ; 
 
 
 
 
Örneğin böyle bir sorgu  , Sanırım where 'den sonrasını yapamıyorum veya şartların böyle verilmemesi gerekiyor. 

 

bildiğim kadarıyla Toplam fonksiyonlarını kullanırken kısıt girilmesi gerektiginde WHERE yantümcesini kullanamıyoruz aynı sorguyu where silin group by dan sonra having ile yapmaya çalışın yani şöyle

SELECT productid, SUM(quantity) AS total_quantity
FROM [order details]
GROUP BY productid
HAVING SUM(quantity) gibi gibi ...

 
Gönderildi : 07/02/2013 19:16

Paylaş: