一部のコードを xp_sendmail から切り替えていますが、sp_send_dbmail から期待した結果が得られません。私が試しているクエリは以下のとおりで、メールのメッセージ本文には 1 行しか含まれていません。
私の最初のヘッダー エントリ
Microsoft は、単一行クエリ (たとえば、COUNT(*) または TOP 1) からの回答のみを返すようにこれを本当に設計したのでしょうか? 行のセット全体をテキストとして取得する方法はありますか?
DECLARE @tLog TABLE (Sequence INT IDENTITY(1,1), [Rank] TINYINT DEFAULT 1, Line VARCHAR(8000))
INSERT INTO @tLog ([Line]) VALUES ('My first log entry')
INSERT INTO @tLog ([Line]) VALUES ('My first second entry')
/* ... processing ... */
INSERT INTO @tLog ([Rank], [Line]) VALUES (0, 'My first header entry')
/* Global Temp for visibility in sp_send_dbmail */
SELECT Sequence, [Rank], Line
INTO ##tResult1
FROM @tLog
ORDER BY [Rank], Sequence
/* to validate table content only */
SELECT Sequence, [Rank], Line
FROM ##tResult1
ORDER BY [Rank], Sequence
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'MyProfile',
@recipients='me@myaddress.net',
@subject = 'test',
@body_format = 'text',
@body = '',
@query_result_header = 0,
@query_no_truncate = 1,
@query = 'SELECT Line FROM ##tResult1 ORDER BY [Rank], Sequence'
DROP TABLE ##tResult1