实现实时(每隔一分钟检测一次,这个作业功能里可以设置)统计一个表的记录数,如果当天超过一定数量,(比如每天上限1W条符合条件的记录数)就发送邮件报警的作业脚本,本人是新手,希望大家帮忙!!
解决方案 »
- 如何用select 显示多条记录时,同时每条记录显示不同的随机数
- 567.3400这个小数,转成字符串后,如何去除后面没有用的零呢?即转成"567.34"而不是"567.3400"
- 系统加入域后看不到之前的登陆名?
- 比较两种SQL关系的设计
- sql server 2008安装问题<弱智问题>
- 关于SQL SELECT选择语句的问题!
- 各位帮帮忙,这个SQL怎么写?
- 问一个问题急
- 触发器???:(拜托各位大哥大姐,大叔大伯!
- 奇怪的问题!!关于SQL Server2000
- SQL日期时间类型数据只要日期里面的日怎么写?
- 〓百分〓求一SQL查询,有点难度~请大虾赐教>>>>>在线等>>>>>>>>>>>>>>>>>>>
if @@rowcount>10000
...
*测试环境: windowx Xp
OutLook: OutLook 2000
测试的电子邮件: [email protected]
/第一步:配置邮件打开OutLook->选择用户企业或工作组
工具->选项->邮件服务->单击重新配置邮件支持->“用于企业或工作组”
第二步:配置配置文件名称开始->控制面版->邮件->添加->手工配置信息服务->配置文件名称(SQLSendMailServer)
->添加->Internet 电子邮件->确定常规:
邮件帐户: 126
姓名: zlp
单位: zehua
电子邮件地址: [email protected]
服务器:
服务器:(参考个网站邮件设置帮助手册)
接收邮件(POP3): pop3.126.com
发送服务器(SMTP):smtp.126.com接收邮件服务器:
帐户号: zlp321001
密码: ****选中"我的服务器要求身份验证"下一步->下一步->完成
第三步:添加个人文件夹(用于保存临时文件 out2003 不用设置)
开始->控制面版->邮件->添加->个人文件夹->选择(PST文件)
第四步:测试是否可以正常发邮件
第五步:启动SQL服务开始->控制面版->管理工具->服务->启动MSSQLSERVER服务和SQLSERVERAGENT(登录用户均采用域用户名)
第六步:测试数据库配置文件企业管理器->展开服务器->展开支持服务->SQL邮件->属性->发现"SQLSendMailServer"有这个配置文件名称测试通过第七步:测试程序发送邮件exec master..xp_sendmail '[email protected]', '测试来自数据库发送的邮件'
exec master..xp_sendmail '[email protected]', '测试来自数据库发送的邮件'
exec master..xp_sendmail '[email protected]', '测试来自数据库发送的邮件'
exec master..xp_sendmail '[email protected]', '测试来自数据库发送的邮件'
测试结果,均从以四个邮箱收到来自"[email protected]"的邮件
if @@rowcount>8000分析报错了
select count(*) from table where reqdate>CONVERT(char(10),getdate(),120)
if @@rowcount>8000
exec master..xp_sendmail '[email protected]', '测试来自数据库发送的邮件'
向指定的收件人发送邮件和查询结果集附件。
语法
xp_sendmail {[@recipients =] 'recipients [;...n]'}
[,[@message =] 'message']
[,[@query =] 'query']
[,[@attachments =] 'attachments [;...n]']
[,[@copy_recipients =] 'copy_recipients [;...n]'
[,[@blind_copy_recipients =] 'blind_copy_recipients [;...n]'
[,[@subject =] 'subject']
[,[@type =] 'type']
[,[@attach_results =] 'attach_value']
[,[@no_output =] 'output_value']
[,[@no_header =] 'header_value']
[,[@width =] width]
[ , [ @separator = ] 'separator' ]
[,[@echo_error =] 'echo_value']
[ , [ @set_user = ] 'user' ]
[,[@dbuse =] 'database']
日期 2007-3-27 18:45:51
日志 数据库邮件 (数据库邮件日志)日志 ID 28
上次修改时间 2007-3-27 18:45:51
上次修改者 sa消息
Invalid XML message format received on the ExternalMailQueue. conversation_handle: 882E4252-50DC-DB11-A5DF-0013726464CC. message_type_name: {//www.microsoft.com/databasemail/messages}SendMailStatus. message body: <?xml version="1.0" encoding="utf-8"?>
<responses:SendMail xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/databasemail/responses ResponseTypes.xsd" xmlns:responses="http://schemas.microsoft.com/databasemail/responses">
<Information>
<Failure Message="由于邮件服务器故障,无法将邮件发送给收件人。 (使用帐户 1 (2007-03-27T18:45:51) 发送邮件。 异常邮件: 无法将邮件发送到邮件服务器。 (不允许使用邮箱名称。 服务器响应为: authentication is required,smtp5,wKjRELDr0wSq9QhGxpLFAw==.20752S2 1174992298)。
)" />
</Information>
<MailItemId Id="9" />
<SentStatus Status="3" />
<SentAccountId Id="0" />
<SentDate Date="2007-03-27T18:45:51" />
<CallingProcess Id="3608" />
</responses:SendMail>
.
select count(*) from table where reqdate>CONVERT(char(10),getdate(),120)
if @@rowcount>1000
use vat
use msdb
EXEC sp_send_dbmail @profile_name = '1111',
@recipients = '[email protected]',
@subject = '邮件测试!',
@body = '邮件测试成功!'
use vat
declare @cnt int
select @cnt=count( *) from table where reqdate>CONVERT (char(10), getdate(), 120)
if @cnt>10000 begin
use vat
--以下是使用MSSQL2005的邮件数据库功能,按微软的提示是只有2005会有这个功能
use msdb
EXEC sp_send_dbmail @profile_name = 'test',
--调用发送邮件的存储过程,登录帐号必须有msdb的datamail权限
@recipients = [email protected]',
@subject = '邮件测试',
@body = '邮件测试成功!' end
没有outlook,是指定了数据库邮件的smtp和用户名密码