sqlserver 데이터 베 이 스 는 저장 과정 과 dbmail 을 사용 하여 정시 에 메 일 을 보 냅 니 다.

앞에서 말 했 듯 이어떻게 데이터베이스 에 데이터베이스 메 일 발송 을 설정 합 니까?(비고:데이터베이스 메 일 기능 은 SMTP 를 바탕 으로 이 루어 진 것 이 고 먼저 시스템 에 SMTP 기능 을 설정 합 니 다.'프로그램 추가/삭제'패 널 에서'WINDOWS 구성 요소 추가/삭제'를 선택 하고'IIS'나'응용 프로그램'을 두 번 눌 러 서'SMTP SERVICE'를 선택 하고'다음'을 누 르 면 된다.일반적으로 이 단계 가 필요 하지 않 고 직접 설정 하면 됩 니 다)본 고 는 인 스 턴 스 를 사용 하여 저장 과정 과 Job 을 결합 하여 정기 적 으로 데이터 베이스 에서 메 일 을 보 냅 니 다.1.저장 과정 을 만 들 고 새로운 저장 과정 에서 sp 를 호출 합 니 다.send_dbmail 저장 프로 세 스(주:코드 의\\는 코드 를 추가 할 때 자동 으로 추 가 된 전의 문자 일 뿐 실제 코드 에는 작은 따옴표 만 있 습 니 다)

Create PROCEDURE [dbo].[sp_send_error_alert]
AS
declare
@v_contentnvarchar(max),
@v_mail_tonvarchar(500),
@v_bodynvarchar(max),
@v_titilenvarchar(100)
,@v_br_idnvarchar(50)
,@v_installmentsnvarchar(10)
,@v_remarknvarchar(100)
BEGIN
SETNOCOUNTON;
set@v_titile=\' ;
set@v_content=\'\';

DECLAREcursor_repaymentCURSORFOR
SELECT
br_id
,installments
,remark
fromdw_account_repaymentt
where
status!=1
andis_del=0
orderbyt.add_datetimedesc;

OPENcursor_repayment
FETCHNEXTFROMcursor_repaymentINTO
@v_br_id-- ID
,@v_installments--
,@v_remark--
WHILE@@FETCH_STATUS=0
BEGIN

set@v_content=@v_content+\'<tr><td>\'+@v_br_id+\'</td>\'+\'<td>\'+@v_installments+\'</td>\'+\'<td>\'+@v_remark+\'</td></tr>\';

fetchnextfromcursor_repaymentinto
@v_br_id-- ID
,@v_installments--
,@v_remark--
end;

CLOSEcursor_repayment;--
DEALLOCATEcursor_repayment;--

ifLEN(@v_content)>0
begin
SET@v_body=\'<html><H1> </H1><bodybgcolor=white><tableborder=1><tr><th> ID</th><th> </th><th> </th></tr>\'
SET@v_body=@v_body+@v_content+\'</table></body></html>\'
EXECmsdb.dbo.sp_send_dbmail
@recipients=N\' [email protected]; [email protected]\',@body=@v_body,@body_format=\'HTML\'
,@subject=@v_titile,@profile_name=\' (db_profiler)\

Job(SqlServer 에이전트->작업)을 만 들 고 실행 파 라 메 터 를 설정 하 며 이 저장 과정 을 정시 에 실행 하면 정시 에 메 일 을 보 낼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기