运行存储过程,然后通过电子邮

时间:2012-07-06 18:36:32

标签: sql-server-2008 sp-send-dbmail

我正在尝试在SQL Server 2008中运行存储过程,然后通过电子邮件发送存储过程的结果,但是收到以下错误:

  

Msg 22050,Level 16,State 1,Line 0
  格式化查询时出错,可能是无效参数
  消息14661,级别16,状态1,过程sp_send_dbmail,行504   查询执行失败:消息102,级别15,状态1,服务器XXYYZZ,行1   '@returnvalue'附近的语法不正确。

以下是一些要复制的示例代码:

CREATE PROCEDURE pTestEmail 
AS
        -- Create the result table - Stores the results of the stored procedure -- 

        DECLARE @returnvalue TABLE (
        ClientID varchar(5)
        );

BEGIN
    SET NOCOUNT ON;

    -- Insert some fake data -- 

    INSERT INTO @returnvalue
    VALUES ('001'),
    ('002'),
    ('003'),
    ('004'),
    ('005');

    -- Test that the fake data is in there
    -- Uncomment the next line to see it works --
    -- SELECT * FROM @returnvalue;


    -- Email the results in the @returnvalue table -- 
    EXEC msdb.dbo.sp_send_dbmail
    @execute_query_database='MainDB',
    @recipients=N'me@null.com',
    @body='Message Body', 
    @subject ='The Resultset',
    @profile_name ='Reports',
    @query ='SELECT * @returnvalue',
    @attach_query_result_as_file = 1,
    @query_attachment_filename ='Results.txt'


END
GO

我已经测试了DBmail函数并使其正常工作。你可以像我一样在存储过程中使用@标量,还是需要使用全局临时表?

0 个答案:

没有答案