sql-server-2005 – 仅当查询包含要返回的行时才发送sql server作业警报

我有一个查询,检查我们是否已销售特定库存商品
select * from merchand_history where stock_code = 'zzz007' and create_timestamp >= getdate() order by create_timestamp desc

我想有一个sql作业通过电子邮件发送给用户(我想使用警报机制),但前提是该查询返回了行.

我无法想到如何做到这一点并服从于hivemind.我真的需要一个只有sql的解决方案……

解决方法

尝试构建类似下面的存储过程并安排它作为工作运行:
create procedure [dbo].[sp_send_merchant_email] 
as


Begin

declare @recordCount int 


select @recordCount = isnull(count(*),0)
from merchand_history 
where stock_code = 'zzz007' and create_timestamp >= getdate() 
order by create_timestamp desc



IF (@recordCount > 0)
begin



EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'YourProfile',@recipients = 'recipients@yourcompany.com',@query = 'select * from merchand_history 
                where stock_code = ''zzz007'' and create_timestamp >= getdate() 
                order by create_timestamp desc',@subject = 'Merchant Email ',@Body = 'Email Merchant..... ',@attach_query_result_as_file = 1 ;

End
else
begin

      EXEC msdb.dbo.sp_send_dbmail
      @profile_name = 'YourProfile',@BODY = 'No data returned ',@subject = 'Merchant Email'

End
End;

相关文章

本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的...
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中...
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册...
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看...