views:

36

answers:

2

I have a query that returns data as XML using the "for XML Clause" and then sends the result as the body of an email like so.

Declare @messBody as nvarchar(max)
Set @messBody = (Select * from tablehere where state = 1 for xml Auto)
Begin
  Exec msdb.dbo.ap_send_dbmail
      @profile_name = 'ProfileNameHere'
      @recipients = '[email protected]'
      @body = '@messBody
      @subject = 'SubjectHere'
End

It works and I get the email with the info I need but the body of the email is ugly XML. I would like to be able to transform it into pretty HTML. Can this be done in SQL Server?

+1  A: 

I think you would need to use the CLR for that to do it by applying an XSLT transform.

Martin Smith
How funny the same link. Thanks Google!
spinon
@spinon. Yep. "apply xslt sql server" came up trumps for me :-)
Martin Smith
Yeah sometimes I wonder if people even search for a minute before they post things. So many answers if I don't know off the top of my head I can find in less than a minute of searching on Google.
spinon
+1  A: 

One way would be to write a clr proc. Here is an article showing how: http://blogs.msdn.com/b/mrorke/archive/2005/06/28/433471.aspx

spinon