2016-05-17 7 views
1

У меня есть таблица, заполненная oldUserID, newUserID, именем и адресом электронной почты. Я хочу использовать sp_send_dbmail для электронной почты в каждой строке. Например:Использование sp_send_dbmail с recieptent и содержанием из одной строки sql

oldUserID | newUserID | имя | электронная почта

21213125 | 2355233571 | Том | [email protected]

65465465 | 4564884664 | Мат | [email protected]

И так далее для 200 рядов. Есть ли способ отправить sp_send_dbmail в электронную почту в каждой строке, включая oldUserID и newUserID? Вывод по почте будет что-то вроде:

«Ваш старый идентификатор пользователя: 21213125, новый идентификатор пользователя: 2355233571»

Я был бы признателен, чтобы не вводить каждый emailadress вручную.

Спасибо!

+0

Да, есть способ. Вы нашли решение и попытались? – dfundako

ответ

2
DECLARE 
     @txt NVARCHAR(MAX) 
    , @name NVARCHAR(60) 
    , @email VARCHAR(100) 

DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR 
    SELECT 'Your old user id: ' + CAST(oldUserID AS NVARCHAR(100)) 
     + ', your new user id: ' + CAST(newUserID AS NVARCHAR(100)), name, email 
    FROM ... 

OPEN cur 

FETCH NEXT FROM cur INTO @txt, @name, @email 

    WHILE @@fetch_status = 0 
    BEGIN 

     EXEC msdb.dbo.sp_send_dbmail @profile_name = ... 
            , @recipients = @email 
            , @subject = @name 
            , @body = @txt 
            , @body_format = 'HTML' 

    FETCH NEXT FROM cur INTO @txt, @name, @email 

    END 

CLOSE cur 
DEALLOCATE cur 
+0

Ничего себе это было действительно отличное решение, спасибо! – Glews

+0

@ Вы можете приветствовать :) – Devart