sp_send_dbmail усекает строки по 256 символов - PullRequest
0 голосов
/ 04 мая 2018

Я хотел бы отправить результаты запроса в теле HTML-сообщения по электронной почте, используя sp_send_dbmail.

(только) столбец [HTML_body] (nvarchar(max)) таблицы ##HTML_BODY содержит одну строку стиля, одну строку для заголовков таблицы и одну строку для каждой строки таблицы. Таблица содержит 10 строк, длина каждой строки 500-650 символов.

Я использую следующее:

EXEC msdb.dbo.sp_send_dbmail 
            @profile_name = 'ProfileMail'
            ,@recipients = 'me@mycompanydomain.domain'
            ,@subject = 'MySubject'
            ,@body = 'These are the values'
            ,@body_format = 'HTML'
            ,@query_result_width = 2000
            ,@query = ' SET NOCOUNT ON SELECT [HTML_body] FROM ##HTML_BODY SET NOCOUNT OFF'
            ,@file_attachments='\\ThePath\Graph.jpg'
            ,@attach_query_result_as_file = 0
            ,@query_result_separator = '|'
            ,@exclude_query_output = 1
            ,@query_result_no_padding = 1
            ,@query_result_header = 0
            ,@append_query_error=1

Код работает, но каждая строка усекается после 256 символов ... Может кто-нибудь иметь представление о том, в чем может быть проблема? Я ясно указал, что @query_result_width должно быть 2000!

Я использую SQL Server 9.0.4035 (2005), но не нашел никакой информации о совместимости с @query_result_width.

Обновление

У меня такая же проблема с SQL Server 12.0.2000 (2014)

1 Ответ

0 голосов
/ 04 мая 2018

Вам нужно использовать @query_no_truncate = 1 из-за nvarchar(max)

Мой жирный от Документы

[@ query_no_truncate =] query_no_truncate
Указывает, выполнять ли запрос с параметром, позволяющим избежать усечения больших типов данных переменной длины (varchar (max), nvarchar (max) , varbinary (max), xml, text, ntext, image и user). -определенные типы данных). Если установлено, результаты запроса не включают заголовки столбцов. Значение query_no_truncate имеет тип bit. Если значение равно 0 или не указано, столбцы в запросе усекаются до 256 символов. Когда значение равно 1, столбцы в запросе не усекаются. Этот параметр по умолчанию равен 0.

...