SQL Server 发mail 一个简单脚本模板
代码如下:
对于发mail的内容,
先用一张临时表存起来,
然后用FOR XML Path拼接,
只需要自己再拼接一个表头,
数据内容段用XML代替,
就可以组成发mail内容,
比一个栏位一个栏位拼接稍微简化一点发mail流程。
DECLARE @cmd Varchar (1000),@profile_name Varchar(1000)
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)
Declare @Disk_Size Table
(Drive Nvarchar(Max),Free_Space_MB decimal(30,2))
Insert Into @Disk_Size
Exec Xp_fixeddrives
--Select * from @Disk_Size
SET @xml = CAST(( SELECT DS.Drive As 'td',' ',DS.Free_Space_MB AS 'td' ,' ', convert(varchar(20),getdate(),120) as 'td' from @Disk_Size DS
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SET @body ='<html><body><H3>Current Disk Free Space </H3>
<table border = 1>
<tr bgcolor=#F0E68C><td>Drive Name</td><td><b>Free_Space_MB<b></td><td>Capture_Date</td></tr>'
SET @body = @body + @xml +'</table></body></html>'
Set @cmd= @@SERVERNAME + ': Current Disk Free Space'
SELECT Top 1 @profile_name=name FROM msdb.dbo.sysmail_profile
EXEC msdb.dbo.sp_send_dbmail
@profile_name = @profile_name, -- replace with your SQL Database Mail Profile
@body = @body,
@body_format ='HTML',
@recipients = 'kingster@126.com', -- replace with your email address
@subject = @cmd
浙公网安备 33010602011771号