30/12/2009, 10:40
arzuu
İlk olarak Sql Server Agent Service’i ve Database Mail hizmetlerini kullanmayı bilmelisiniz. Sql Server Agent Service job görev tanımlamaya dayalıdır(job schedule).Doğumgününü hatırlamak için kullanacağınız görev şu:
DECLARE @email nvarchar(50), @birthday date
DECLARE emailCursor CURSOR FOR
SELECT email, birthday FROM test;
OPEN emailCursor;
FETCH NEXT FROM emailCursor INTO @email, @birthday
WHILE (@@FETCH_STATUS = 0)
BEGIN
IF(DATEDIFF(DD, DAY(@birthday),DAY(GETDATE()))=0) AND
(DATEDIFF(DD, MONTH(@birthday),MONTH(GETDATE()))=0)
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name='Test',
@recipients=@email,
@body='Happy birthday to you!...',
@body_format='HTML',
@subject='Happy Birthday';
END
FETCH NEXT FROM emailCursor INTO @email, @birthday
END
CLOSE emailCursor
DEALLOCATE emailCursor
GO
Elimizde bir tane tablomuz olacaktır. Bu tabloda en az 3 adet sütun(id, email, birthday-dateofbirth) olacaktır. Satır sayısı sınırsızdır. Bu tabloyu oluşturduktan sonra, oluşturduğunuz görevi(job) çalıştırmaya başlayın(execute). O arka planda çalışırken herhangi bir kişinin yani arkadaşınızın doğumgünü geldiğinde ona belirlediğiniz doğumgünü mesajını gönderecektir.
Alıntıdır.