我的脚本运行在下面。
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或没有数据,它结束任务并且不会运行上面的步骤。
这是我的解决方案。
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,它基于表中的记录计数。