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字符,可能会导致一些问题。问题中哪里有这样的空格?问题中哪里有这样的空格?