我有一个执行查询然后调用 dbmail 的存储过程。邮件消息包括执行的查询结果。我想在两个地方都将参数/变量传递给查询:存储过程和dbmail中的@query。下面是我想要运行它的方式,但由于参数 (@Threshold) 未传递给 dbmail 块,因此出现错误。我怎样才能做到这一点?
ALTER PROCEDURE [dbo].[spMyProcedure] @Threshold float
AS
IF EXISTS (SELECT Fields FROM Table
WHERE DataValue < @Threshold AND LocalDateTime >= DATEADD(hour, -24, SYSDATETIME())
GROUP BY Fields)
BEGIN
SET NOCOUNT ON
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Profile',
@from_address = 'data@data.com',
@recipients = 'data@data.com',
@subject = 'Data Warning',
@body = 'The following results are outside the defined range.',
@query = 'SELECT Fields FROM Table
WHERE DataValue < @Threshold AND LocalDateTime >= DATEADD(hour, -24, SYSDATETIME())
GROUP BY Fields' ;
END