Come aggiungere un attributo al incentrato sugli elementi query FOR XML PATH
-
04-10-2019 - |
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>'
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