2017-11-30 3 views
1

sp_send_dbmail을 사용하여 테이블에서 여러 메일 -ID를 가져 와서 동일한 메일을 보내려고합니다. 아래 쿼리를 사용하면 "받는 사람"섹션의 모든 사용자에게 메일이 한 번 전송됩니다. 하지만 제 요구 사항은 개별적으로 메일을 보내는 것입니다.SQL- 같은 메일을 여러 사용자에게 개별적으로 보내십시오.

DECLARE @Receipientlist varchar(8000) 
SET @ReceipientList = STUFF((SELECT ';' + emailaddress FROM Your query here 
FOR XML PATH('')),1,1,'') 


EXEC sp_send_dbmail @profile_name= your email profile in db, 
@recipients= @Receipientlist, 
@subject='your subject here', 
@body='body message here' 

몇 가지 해결책을 제안하십시오.

+0

수신자를 '커서로'보내고 수신자별로 이메일을 보내십시오. – Nope

+0

안녕하세요 @ 프란, 제안 주셔서 감사. 몇 가지 예를 들어 주시겠습니까? –

+0

필요한 정보를 얻으려면 답변에 구조와 샘플 코드가있는 링크 된 복제본을 참조하십시오. 비록 당신은 또한 'SQL Cursor'에 대한 공식 문서 google을 볼 수 있지만, 최상위 결과 : https://docs.microsoft.com/en-us/sql/t-sql/language-elements/declare-cursor-transact-sql – Nope

답변

-1

커서를 정의하고 다음과 같이 시도하십시오.

declare @emailaddress nvarchar(250) 

    DECLARE db_cursor CURSOR FOR 
    SELECT emailaddress FROM Your query here 

    OPEN db_cursor 
    FETCH NEXT FROM db_cursor INTO @emailaddress 

    WHILE @@FETCH_STATUS = 0 
    BEGIN 

      EXEC sp_send_dbmail @profile_name= your email profile in db, 
      @recipients= @emailaddress, 
      @subject='your subject here', 
      @body='body message here' 

      FETCH NEXT FROM db_cursor INTO @emailaddress 
    END 

CLOSE db_cursor 
DEALLOCATE db_cursor 
+0

고마워요 @ 레인 만. 그것은 나를 위해 일했습니다! –

+0

반갑습니다. 문제가 해결되면 답변을 수락 한 것으로 표시하십시오. – lucky