SQL电子邮件触发器将查询作为文本发送而不是实际结果

时间:2015-05-20 13:13:26

标签: sql-server

我在发送电子邮件的表上创建了一个触发器,但是它将查询作为文本发送,而不是查询的实际结果。 希望有人可以告诉我哪里出错了。触发器是:

[dbo].[EventMail] ON [dbo].[Table1] AFTER INSERT AS
BEGIN
    SET NOCOUNT ON;
    IF EXISTS (SELECT * FROM inserted WHERE Column1 LIKE  '%Test%')
    BEGIN
        DECLARE @msg nvarchar(max)
        SET @msg = 'SELECT * FROM Inserted Where Column1 Like ''%Test%'''
        --// CHANGE THE VALUE FOR @recipients
        EXEC msdb.dbo.sp_send_dbmail 
        @recipients=N'email@email.co.uk', 
        @body= @msg,  
        @subject = 'Worksheet Error', 
        @profile_name = 'profilename'
    END
END

1 个答案:

答案 0 :(得分:0)

您的查询在引号中。取出单引号,它会将@msg设置为该查询的结果。

虽然有警告。如果该查询返回多个结果,则会失败。您还应声明该列。