日期:2014-05-17  浏览次数:20545 次

SQL MAIL 输出表格疑问
抱歉我只有20分了

我想用SQL邮件输出一张表格,格式大致如下:


-----------------------------------------------
|名称    |     @name  |     电话 |       @phone| 
-----------------------------------------------
|地址    |     @add   |    联系人|    @contract| 
------------------------------------------------
然后我写了代码如下:

declare @prob nvarchar(max),@name nvarchar(max),@phone nvarchar(max),@add nvarchar(max),@contract nvarchar(max)
set 
set @prob=
'<table border=1>'+ CAST((select top 1
 '<tr><td>名称:</td><td>'+@name+'</td><td>电话</td><td>'+@phone+'</td></tr>'
 '<tr><td>地址:</td><td>'+@add+'</td><td>联系人</td><td>'+@contract+'</td></tr>'
from tc_account 
  FOR XML PATH('tr'), TYPE ) as nvarchar(max))
+ N'</table>'

--set @mail=@mail
EXEC msdb.dbo.sp_send_dbmail 
@profile_name = '邮件配置文件名',
@recipients = '邮件地址',
@body = @prob,
@subject = @name


----------收到邮件的结果是这样的:没有表格,大火帮忙看看啊,直接输出 代码了,没转成表格
<table border=1><tr>&lt;tr&gt;&lt;td&gt;名称:&lt;/td&gt;&lt;td&gt;test123&lt;/td&gt;&lt;td&gt;电话&lt;/td&gt;&lt;td&gt;test123&lt;/td&gt;&lt;/tr&gt;</tr></table>

------解决方案--------------------
引用:
<table border = "0" style="table-layout:fixed ">  

修改一下开头看看


看反了,你是要有border的哈,试试这个

<style>  
      .tt th{background:#a9a9a9;background-color:red;color:white;}
      .tt tr{font-weight:100;font-size:12;width:120pt;text-align:center;font-family:Lucida Sans Unicode;}
      .tt tr.altrow{
background-color:#c7e5ff;
      }
      .tt td{width:100px;padding:5px;word-wrap: break-word; word-break : break-all;}
     </style>'


<table class = "tt" border="1" style="border-collapse:collapse;table-layout:fixed;word-break:break-all;">