Как добавить атрибут в элементно-ориентированный запрос FOR XML PATH
Я создаю некоторый HTML-код, который будет включен в тело письма и отправлен с использованием sp_send_dbmail. Я хотел бы выровнять по правому краю некоторые из столбцов. Есть ли простой способ сделать это (если не считать переписывания с использованием 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>'
1 ответ
Решение
Это должно сделать это. Обратите внимание, что вам не нужно вручную добавлять <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>