4

sp_send_dbmail の @query 境界を使用して、警告のリストを含む電子メールを送信します (警告は @query 境界によって返されます)。@query 境界は、電子メールにテキストとしてリストされます。@query 境界から返され、電子メールに表示されるすべてのレコードには、それらの間に改行があります。すなわち。4 つのレコードがある場合、改行のために 8 行になります。

改行をオフにするにはどうすればよいですか? sp_send_dbmail の msdn 記事を読みましたが、改行に影響する変更可能な属性については言及されていませんでした。

コード:

    BEGIN
    EXEC MSDB.DBO.sp_send_dbmail 
        @PROFILE_NAME = 'Alerts',
        @RECIPIENTS = @MAIL,
        @SUBJECT = @NEWSUBJECT,
        @BODY = @NEWBODY,
        @QUERY =
            'SET NOCOUNT ON
            DECLARE @HEXSTRING AS VARCHAR(100)
            SET @HEXSTRING = (SELECT HEXADECIMAL_STRING FROM mydb.dbo.statusupdates
                WHERE MACHINE_ID = ''1111'' AND DATEDIFF(MI, TIME_DATE_RECEIVED, GETDATE()) <= 60)
            SELECT [Warning_Description] FROM mydb.DBO.BINARYTOTABLE(mydb.DBO.HEXTOBINARY(@HEXSTRING)) AS ABB1
            JOIN mydb.DBO.WarningMessages  ON mydb.DBO.WarningMessages.[Bit_Offset] = ABB1.BITPLACE
            WHERE BITVALUE = 1 AND ALERT_LEVEL = ''WARNING''',
        @QUERY_RESULT_HEADER = 0,
        @ATTACH_QUERY_RESULT_AS_FILE = 0;
    END
4

4 に答える 4

5

古い投稿ですが、おそらく sp_send_dbmail の @query_result_width パラメータを確認する価値があります

http://technet.microsoft.com/en-us/library/ms190307(v=sql.110).aspxを参照してください。

列のデータ幅が @query_result_width (デフォルトの 256) を超える場合、新しい行が追加されます。

スティーブ

于 2014-07-15T11:04:30.527 に答える
1

結局、SP_SEND_DBMAIL の @BODY パラメータにすべてを入れました。SELECT ステートメントからのクエリ結果は、通常のテキストと連結して文字列にすることができ、HTML を使用して結果のテキストをフォーマットできます。

于 2012-11-13T21:38:01.217 に答える
1

私は常に CHAR(13)+CHAR(10) を使用して、tsql で改行を作成してきました。' ' に置き換える必要があります。

于 2012-11-02T20:27:47.237 に答える
0

これを試して、何が得られるか見てください...

 @query = REPLACE(@query,CHR(13),'')
于 2012-11-02T20:10:34.873 に答える