替代和最佳方式格式化电话警报消息的SQL查询

时间:2012-08-22 14:39:34

标签: sql-server-2008 tsql alert smartphone

我正在创建一个电子邮件提醒,很可能会被路由到智能手机(电子邮件或短信),并在我们遇到生产问题时用来唤醒别人。使用EXEC msdb.dbo.sp_send_dbmail发送电子邮件并提供执行存储过程的@query参数。

目前,报告看起来像这样,正如您所看到的,当事物环绕并且不是Courier字体时,它们看起来很糟糕。

格式化这种格式的最佳方法是什么? HTML电子邮件而不是表格? 是否有任何T-SQL实用程序可以做到这一点?这可能是C#的工作,而不是T-SQL(我也可以编码)。

> Rating     Airline    Feed             LocalDateTimeLastMsgRcvd
> AlertMinutes CountMessageInLastHour AvgCountPerSameHour
> ---------- ---------- ---------------- ------------------------ ------------ ---------------------- ------------------- GOOD       ABC        Feed1             2012-08-22 07:15                   10               
> 420                 351 BAD        ABC        ABC-Feed2        
> 2012-08-22 07:04                   10                     48          
> 56 GOOD       ABC        ABC-Feed3         2012-08-22 06:40           
> 75                      1                   1 GOOD       DEF       
> DEF               2012-08-22 07:15                   10               
> 597                 858

我正在考虑三个想法:

1)使用T-SQL在临时表的不同行上写每个元素:

Row=1
Rating=Good
Feed=ABC 
LocalDateTimeLastMsgRcvd=2012-08-22 07:04 
etc..

2)与上面类似,但使用XML包装器

3)与上面类似,但使用<TR><TD>包装器来制作HTML表格。

我目前正在查看选项c:http://msdn.microsoft.com/en-us/library/ms190307.aspx,这可能适用于大多数智能手机电子邮件,但可能不适用于短信。有些人会将此转发给他们的短信。

1 个答案:

答案 0 :(得分:1)

格式化不是存储过程或SQL已知的东西。可能值得考虑XML输出,可能还有XSLT。

Use "pre" tags使用当前输出来保留间距和换行符。

我看到短信需要24小时才能发送。它不会经常发生在我身上,但确实经常发生。 (也许一年一次,我的文字不像大多数人那么多。)

  • 仅发送重要信息,
  • 使其少于160个字符。

在手机上,我想我宁愿读一些类似你的#1,但我想这可能取决于有多少信息是至关重要的。宽大的桌子 - 和你一样宽阔 - 我很难通过电话阅读。

依赖人们将某些电子邮件转发到他们的短信是否有意义依赖于应用程序。你是这里唯一可以判断这是否可靠的人。