Sql 将变量作为@Subject与sp_send_dbmail一起使用
我得到了下面的代码,它或多或少运行得很平稳Sql 将变量作为@Subject与sp_send_dbmail一起使用,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我得到了下面的代码,它或多或少运行得很平稳 DECLARE @MyId char(4),@MyResult varchar(max), @MySubject varchar(max); SET @ID = 5; SET @MyId = @ID; SELECT @MyResult = SQL_Script FROM Table1 WHERE ID = + @MyId; SELECT @MySubject = Subject FROM Table1 WHERE ID = + @
DECLARE @MyId char(4),@MyResult varchar(max), @MySubject varchar(max);
SET @ID = 5;
SET @MyId = @ID;
SELECT @MyResult = SQL_Script FROM Table1 WHERE ID = + @MyId;
SELECT @MySubject = Subject FROM Table1 WHERE ID = + @MyId;
EXEC msdb.dbo.sp_send_dbmail
@profile_name='Operator',
@recipients= 'test@mail.com',
@subject= @MySubject,
@query_result_separator = ' ',
@query_result_no_padding= 1,
@body= 'test',
@query_attachment_filename = 'Test.csv',
@query= @MyResult ,
@mailitem_id='1',
@attach_query_result_as_file = 1
END
存储在@MyResult
中的查询结果工作正常,但当我在@MySubject
中存储字符串时,我不会收到邮件
如果我写:
@subject= @MySubject, <-- Doesn't work (The String is not 'NULL')
@subject = 'test', <-- works
@subject=@MySubject,使用变量不是问题
可能是这个
@MySubject varchar(max)
@subject参数应该是nvarchar(255)
@MySubject的价值是什么?它是可读文本吗?使用变量不是问题所在
可能是这个
@MySubject varchar(max)
@subject参数应该是nvarchar(255)
@MySubject的价值是什么?它是可读文本吗?空格似乎是问题所在:
SET@subm='testsubject'空格似乎是问题所在:
SET@subm='testsubject'@MySubject是这样的例子:'这是一封带有''I'的测试邮件',我刚刚将“varchar(max)”改为“nvarchar(255)”。但我还是没有收到邮件。作业说它已完成,没有错误,但我不会收到邮件。@例如,MySubject是这样的:“这是一封测试邮件”,带有“”我刚刚将“varchar(max)”更改为“nvarchar(255)”。但我还是没有收到邮件。作业说它完成了,没有错误,但我不会收到邮件。你检查了msdb.dbo.sysmail\u event\u log
表中的日志了吗?只是查看了一下。它说邮件服务器无法处理用于主题的格式。但我不知道为什么格式不对。它是纯文本(只有非文本是空格和将其标记为字符串的“”)。此外,我尝试在没有“”的情况下使用它,但它也不起作用。您可以在日志中共享错误消息的完整描述吗?日志中的错误消息是德语的。不知道你能不能用这个?我可以尽我所能把它翻译好,然后发送出去吗?哦,如果可能的话,你能分享@MySubject
变量中的确切内容吗?因为如果它包含任何垃圾邮件或非ascii字符,可能会导致一些问题。您是否检查了msdb.dbo.sysmail\u event\u log
表中的日志?只是查看了一下。它说邮件服务器无法处理用于主题的格式。但我不知道为什么格式不对。它是纯文本(只有非文本是空格和将其标记为字符串的“”)。此外,我尝试在没有“”的情况下使用它,但它也不起作用。您可以在日志中共享错误消息的完整描述吗?日志中的错误消息是德语的。不知道你能不能用这个?我可以尽我所能把它翻译好,然后发送出去吗?哦,如果可能的话,你能分享@MySubject
变量中的确切内容吗?因为如果它包含任何垃圾或非ascii字符,可能会导致一些问题。问题中哪里有这样的空格?问题中哪里有这样的空格?