У меня есть база данных на SQL Сервере с таблицей user
с 3 столбцами: имя, дата рождения и адрес электронной почты.
У меня есть хранимая процедура, которая просматривает эту таблицу и ищет, кто У него сегодня день рождения, и он отправляет ему поздравительное письмо, пока оно работает на 100.
Однако я хочу добавить в рамках той же процедуры, что я отправляю электронное письмо всем пользователям базы данных (кроме с днем рождения), уведомив их, что у x человека сегодня день рождения.
Это мой текущий SQL Код сервера:
CREATE PROCEDURE spSendEmail
AS
DECLARE @email nvarchar(128)
DECLARE @name nvarchar(128)
DECLARE @Date date
SELECT
GETDATE(),
MONTH(GETDATE()), DAY(GETDATE()), YEAR(GETDATE())
DECLARE email_cursor CURSOR FOR
SELECT u.name, u.email
FROM dbo.users u
WHERE MONTH(u.dateofbirth) = MONTH(GETDATE())
AND DAY(u.dateofbirth) = DAY(GETDATE())
OPEN email_cursor
FETCH NEXT FROM email_cursor INTO @name, @email
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @email
DECLARE @subject nvarchar(255)
DECLARE @Bodytext nvarchar(512)
SET @BodyText = @Name + '' + 'we wish you happy birthday'
SET @Subject = 'Happy Birthday'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Birthday Alert',
@recipients = @email,
@body = @Bodytext,
@subject = @subject;
FETCH NEXT FROM email_cursor INTO @name, @email
END
CLOSE email_cursor
DEALLOCATE email_cursor