在sql中怎么嵌入html代码
尊敬的先生/女士:
你好!
这是你本月的旷工信息汇总,请查阅以下旷工信息汇总如下: 
*****************************************************************************
姓名: *** 工号 : **** 日期 : 2012-02-28  班次:常白班  旷工:8.00小时
*****************************************************************************                                                            此致敬礼
                                                                      ***
                                                                      2012-02-28
想把中间那部分旷工信息设置表格样式,用sql怎么写啊?

解决方案 »

  1.   


    USE [hrmis_fnks]
    GO
    /****** Object:  UserDefinedFunction [dbo].[mailfunc]    Script Date: 02/28/2012 14:20:14 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER function [dbo].[mailfunc](@a0188 int,@datebeg datetime,@dateend datetime) 
    returns varchar(8000)
    as
    begin
    declare  @sql varchar(8000)
     set @sql='尊敬的先生/女士:'+char(10)
     +'你好!'+char(10)+'这是你本月的旷工信息汇总,请查阅以下旷工信息汇总如下: '+char(10)+'*****************************************************************************'
     select @sql=@sql+char(10)+'姓名: '+a0101+' 工号 : ' +a0190 +' 日期 : '+convert(varchar(10),d9999,120) +'  班次:'+k3100+'  旷工:'+cast(k3142 as varchar(5))+'小时'+char(10)
            +'*****************************************************************************'
     from a01,k31 
    where a01.a0188=k31.a0188
    and a01.a0188=@a0188
    and d9999 between cast(@datebeg as datetime) and cast(@dateend as datetime)
    and isnull(k3142,0)>0
    order by d9999
                                            
    return @sql+char(10)+char(10)+char(10)+char(10)+'                                                            此致敬礼'+char(10)+char(10)+char(10)
                        +'                                                                      ***'+char(10)+char(10)+char(10)
                        +'                                                                      '+cast(convert(varchar(10),getdate(),120) as varchar(10))
    end     
    上面是我的代码,怎么改写啊?请各位高手帮忙一下。谢谢了
      

  2.   

    这个用web程序直接读表格的数据方便很多吧
      

  3.   

    关键是发邮件啊用sql发邮件。。要调整这样的格式。。
      

  4.   

    没有用过sql里面嵌入HTML代码?
      

  5.   

    呵呵,这种问题不要用SQL处理了,邮件格式自己指定个字符串就行了,拼一拼,html是嵌入不了的。
      

  6.   

    其实也就是用html的标签去跟你的这些记录做字符串连接而已。联机丛书有例子的。
      

  7.   

    DECLARE @tableHTML  NVARCHAR(MAX) ;SET @tableHTML =
        N'<H1>Work Order Report</H1>' +
        N'<table border="1">' +
        N'<tr><th>Work Order ID</th><th>Product ID</th>' +
        N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' +
        N'<th>Expected Revenue</th></tr>' +
        CAST ( ( SELECT td = wo.WorkOrderID,       '',
                        td = p.ProductID, '',
                        td = p.Name, '',
                        td = wo.OrderQty, '',
                        td = wo.DueDate, '',
                        td = (p.ListPrice - p.StandardCost) * wo.OrderQty
                  FROM AdventureWorks.Production.WorkOrder as wo
                  JOIN AdventureWorks.Production.Product AS p
                  ON wo.ProductID = p.ProductID
                  WHERE DueDate > '2004-04-30'
                    AND DATEDIFF(dd, '2004-04-30', DueDate) < 2 
                  ORDER BY DueDate ASC,
                           (p.ListPrice - p.StandardCost) * wo.OrderQty DESC
                  FOR XML PATH('tr'), TYPE 
        ) AS NVARCHAR(MAX) ) +
        N'</table>' ;EXEC msdb.dbo.sp_send_dbmail @recipients='[email protected]',
        @subject = 'Work Order List',
        @body = @tableHTML,
        @body_format = 'HTML' ;
      

  8.   

    可以的啊,我做过的,类似:str.Append("如果您在注册时填写了手机号或电子邮箱,也可以做为用户名登录。\n");
    str.Append("\n");
    str.Append("建议您保管好本邮件!如忘记密码,请在此找回密码. \n");
    str.Append("\n");
      

  9.   

    直接把html标签加到sql就好了。旷工信息那里,取变量,str.Append("您的用户名是:" + name + " \n");