SQL Server 发mail 一个简单脚本模板

Posted SQL Server学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  

数据库备份shell脚本

法一:

#!/bin/bash
[ ! -d /server/backup ] && mkdir /server/backup
mysqldump -u root -A -B >/server/backup/a.sql
[ ! -f /server/backup/a.sql ] && mail -s "bak faile"
 
法二:
 
#!/bin/sh
DATE=$(date +%Y-%d-%m)
DES=/usr/src/mysql_bak
MYSQL_U="root"
MYSQL_P="123456"
MYSQL_H="127.0.0.1"
if [ ! -d "$DES" ];then
mkdir -p "$DES"
fi
DB=$(mysql -u $MYSQL_U -h $MYSQL_H -p$MYSQL_P -Bse ‘show databases‘)
for database in $DB
do
 
if [ ! $database == "information_schema" ];then
mysqldump -u $MYSQL_U -h $MYSQL_H -p$MYSQL_P $database |bzip2> "$DES/${DATE}_mysql.gz"
fi
done
 

以上是关于SQL Server 发mail 一个简单脚本模板的主要内容,如果未能解决你的问题,请参考以下文章

CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板

shell脚本第三篇——监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告

Oracle如何发送邮件,且附上SQL的结果。

python简说(二十三)发邮件

数据库备份shell脚本

利用Laravel自带的Mail类发邮件