Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sp_send_dbmail即使条件为false也发送邮件-SQL_Sql_Select_Sendmail - Fatal编程技术网

sp_send_dbmail即使条件为false也发送邮件-SQL

sp_send_dbmail即使条件为false也发送邮件-SQL,sql,select,sendmail,Sql,Select,Sendmail,我在存储过程中有一个IF语句,如下所示: BEGIN TRY IF EXISTS (SELECT which I have confirmed returns no results, has a variable called from another table in the where clause) BEGIN EXEC msdb.dbo.sp_send_dbmail @profile_name

我在存储过程中有一个IF语句,如下所示:

BEGIN TRY

IF EXISTS (SELECT which I have confirmed returns no results, has a variable called from another table in the where clause)
    BEGIN           
            EXEC msdb.dbo.sp_send_dbmail 
                @profile_name   = @dynamic_profile, 
                @recipients     = @dynamic_recipient,
                @subject        = @subjectline,
                @body           = @mailHTML,   
                @body_format    = 'HTML';

    END     
END TRY
这与每15分钟运行一次的作业有关。 为什么当IF语句要求在select没有返回结果的情况下跳过邮件发送时,它一直向我发送空白邮件

My NOCOUNT设置为ON(打开)

请尝试-改为:

 IF (SELECT COUNT(*) FROM whatever) > 0
 BEGIN

  --MAIL

 END

在这里,如果没有看到实际的子查询,就没有什么可以说的了。发布子查询,如果您希望它保持私有,那么只需调用
表a
表b
字段a
字段b
表a.字段b
table_b.field_b
etc您确定SELECT永远不会返回任何结果吗?您是否尝试将分析软件附加到dbms以查看每15分钟实际执行的操作?为什么
>1
为什么不
=1
?除此之外,这可能无法解决问题,或者您能否解释一下,如果“it”(结果)不存在,为什么可以执行
IF EXISTS
块(并且使用您的代码不会执行相同的事情)?@DrCopyPaste谢谢您指出这一点。复制粘贴的种类。:)在没有使用NOCOUNT并且返回空白结果集的情况下,count()很可能会消除假阳性。但我认为这不会解决任何问题,最有可能的是OP的
SELECT
被调用时使用了一些意外的参数,这些参数会导致结果,这还有什么可以解释的呢?我试过测试它,但是我想不出一种方法来重现OP所宣称的。谢谢各位。如果。。。计数(*)有效,但在我的选择中有一个ISNULL。。抱歉浪费你们的时间,伙计们!