我在发送电子邮件的表上创建了一个触发器,但是它将查询作为文本发送,而不是查询的实际结果。 希望有人可以告诉我哪里出错了。触发器是:
[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
答案 0 :(得分:0)
您的查询在引号中。取出单引号,它会将@msg设置为该查询的结果。
虽然有警告。如果该查询返回多个结果,则会失败。您还应声明该列。