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视图的实体类脚本/对应的生成模板