Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
如果查询返回null,则SQL作业数据库邮件不会发送_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

如果查询返回null,则SQL作业数据库邮件不会发送

如果查询返回null,则SQL作业数据库邮件不会发送,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,下面是我运行的脚本 use msdb go exec sp_send_dbmail @profile_name = 'New Pending', @recipients ='hepl@example.com', @subject = 'New Pending Data', @query = 'use database exec PendingData2' 我想我需要在这个运行PendingData2的步骤之前添加一个步骤,如果它返回null或no数据,那么它将结束任务,并且不运行上面的步骤 这

下面是我运行的脚本

use msdb
go
exec sp_send_dbmail
@profile_name = 'New Pending',
@recipients ='hepl@example.com',
@subject = 'New Pending Data',
@query = 'use database exec PendingData2'
我想我需要在这个运行PendingData2的步骤之前添加一个步骤,如果它返回null或no数据,那么它将结束任务,并且不运行上面的步骤

这就是我的解决方案

DECLARE @return_value1 int
EXEC @return_value1 = [database].[dbo].[PendingData2] 

if (@return_value1 > 0)
BEGIN
use msdb
exec sp_send_dbmail
@profile_name = 'New Pending',
@recipients ='help@example.com',
@subject = 'New Pending Data',
@query = 'use database exec PendingData2'
END
ELSE
BEGIN
Print 'nothing'
END
我还必须将以下代码添加到PendingData2存储过程中

declare @parameters nchar(100)
declare @sql nchar(100)
declare @return_value1 Int
set @return_value1 = (select Sum(@a + @b + @c + @d + @e + @f + @g + @h + @i + @j + @k + @l + @m + @n + @o + @p + @q + @r + @t + @u + @v + @w + @x + @y) )
set @sql = 'select @return_value1'
set @parameters = '@return_value1 int OUTPUT'
exec sp_executesql @sql, @parameters, @return_value1 = @return_value1 OUTPUT
return @return_value1

@a等被声明为Int,其基于表中的记录计数

尝试在代码中使用IF EXISTSOk,或者在其他步骤中使用IF EXISTS with use database exec PendingData2?我只会在同一步骤中使用它。