SQL Server儲存過程郵件傳送以表格方式傳送
BEGIN
SET NOCOUNT ON;
--初始化
Declare @MailTo nvarchar(max)
Declare @MailCc nvarchar(max)
Declare @MailBcc nvarchar(max)
Declare @MailSubject nvarchar(255)
Declare @MailBody nvarchar(max)
Declare @MailFormat nvarchar(20)
DECLARE @SignCount nvarchar(50)
--查詢表格中異常資料筆數
SELECT @SignCount=COUNT(1) FROM 表名稱 WHERE 篩選條件
SET @MailSubject='異常共'[email protected]+'筆'
SET @MailFormat='HTML'
SET @MailTo='[email protected]' --收件人郵件地址
SET @MailCc='[email protected]' --抄送
SET @MailBcc='
SET @MailBody='' --傳送內容
SET @MailBody =
N'Dear Sir/Madam:<br>異常共'[email protected]+'筆,請及時核對,謝謝!!!<br><H4> 列表如下:</H4>' +
--定義郵件表格尺寸大小
N'<table border="1" style="font-size:11px;text-align:center" width="60%">' +
--定義列表對應列名稱
N'<tr style="font-size:11"><th>工號</th>' +
N'<th>姓名</th>' +
N'<th>已用天數</th>' +
N'<th>實際已用天數</th>' +
N'<th>異常狀態</th>' +
--表主體結果
CAST ( ( SELECT
td = Empid, '',
td = EmpCName, '',
td = [ULColA29-AdjAnlUsePos-Sum], '',
td = VocaTotalHours, '',
td = [ULColA29-State], ''
FROM 表名稱 Form WHERE 篩選條件 FOR XML PATH('tr'), TYPE --將查詢出來結果以HTML語言 td/tr顯示出來
) AS NVARCHAR(MAX)
) +
N'</table><br>以上為系統傳送,請勿回復!!!<br>xx部xx課'
declare @i int
BEGIN
SET @i=0;
EXEC asdb.dbo.xx_xxx_xxxxx --執行SQL郵件傳送的一個功能地址,這個地址就要去問公司的負責人了
--對應的郵件主體引數帶入傳送郵件
@profile_name='MIS_SMTP_Mail', --系統設定的郵件傳送名稱 --公司郵件管理者DB設定
@[email protected],
@[email protected],
@[email protected],
@[email protected],
@[email protected],
@[email protected]
SET @i=1;
END
END