Domanda

Sto costruendo il linguaggio HTML da inserire nel corpo di una e-mail e inviata utilizzando sp_send_dbmail. Mi piacerebbe destra-align alcune delle colonne. C'è un modo semplice per fare questo (a corto di riscrittura utilizzando 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>'
È stato utile?

Soluzione

Questo dovrebbe farlo. Si noti che non è necessario aggiungere manualmente i tag <tr> e </tr> alla stringa di codice HTML. Coloro che sono date a voi come parte del for xml path('tr'). Probabilmente significava aggiungere </table> fino alla fine, invece.

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

L'uscita è:

<table cellpadding=0 cellspacing=0 border=0><tr><td>Column1</td><td>Column2</td><td align="right">Column3</td></tr></table>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top