5

電子メールの本文に含まれ、sp_send_dbmail を使用して送信される HTML を作成しています。一部の列を右揃えにしたいと思います。これを行う簡単な方法はありますか (FOR XML EXPLICIT を使用して書き直す以外に) ?

declare @html varchar(max)

set @html = '<table cellpadding=0 cellspacing=0 border=0>'

set @html +=  
  cast(
    (select
      'Column1' as td, '',
      'Column2' as td, '',
      'Column3' as [td align=right] /* Would like to do something like this */
    for xml path('tr')) as varchar(max)
  )

set @html += '</table>'
4

1 に答える 1

12

これでうまくいくはずです。<tr>タグと</tr>タグを html 文字列に手動で追加する必要がないことに注意してください。これらは の一部として提供されますfor xml path('tr')。おそらく </table>、代わりに最後に追加するつもりでした。

declare @html varchar(max)

set @html = '<table cellpadding=0 cellspacing=0 border=0>'

set @html +=  
  cast(
    (select
      'Column1' as td, '',
      'Column2' as td, '',
      'right' as [td/@align], 'Column3' as td, '' 
    for xml path('tr')) as varchar(max)
  )

set @html += '</table>'

select @html

出力は次のとおりです。

<table cellpadding=0 cellspacing=0 border=0><tr><td>Column1</td><td>Column2</td><td align="right">Column3</td></tr></table>
于 2010-09-23T19:41:25.553 に答える