科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用SQL Server 2005建立定制通告

用SQL Server 2005建立定制通告

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将创建一个SQL Server 2005小型定制通告系统,如果问题出现,它将向相关人员发送一条消息。

作者:builder.com.cn 2007年3月22日

关键字: SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

接下来,在这个表中添加一些记录,确保有人会收到通告。查看列表B

列表C在服务器上建立一个存储过程,它将从NotificationQueue中提取消息并进行处理。这个过程就是我们的“内部激活”过程,意味着NotificationQueue收到消息就调用这个过程。

如果你不熟悉SQL Server 2005的一些新特性,那么你需要注意这个过程中的几个问题。TRY…CATCH结构帮助你更方便地查出错误。实际上,你可以使用一个多功能过程来检查这些错误,将它们记录到一个表中方便以后搜索。欲了解如何使用SQL Server 2005的TRY…CATCH结构,请参考这篇文章

注意,上面脚本中的语句以SELECT @eMailList =开头。这个语句方使用FLWOR,它是一个XML查询结构。我将利用由查询返回的电子邮件地址,把它们连接起来,并用分号隔开。在调用数据库邮件过程时,你可以用这个@eMailList 变量作为参数。

下一步即修改NotificationQueue,以便在消息到达队列(Queue)时,它知道自动激活前面建立的过程。

ALTER QUEUE NotificationQueue WITH ACTIVATION

(

STATUS = ON,

MAX_QUEUE_READERS = 1,

PROCEDURE_NAME = usp_RecordNotificationMessage,

EXECUTE AS OWNER

);

GO

最后,你需要建立一个过程发送通告。这个过程只需要知道发生什么问题,以及问题的严重程度。其它组件将根据我们的NotificationSeverity表,取得这个过程发送的消息,决定需要通知哪些人员。见列表D

如果你调用这个过程,NotificationQueue中将出现一条消息,它再调用内部激活过程来处理这条消息。

EXECUTE usp_SendNotification 'A Severe Error has occurred.', 1

改进通告系统

如果你的系统出现问题,上面创建的实例将保证会通知必要的用户。但是,你可以对它进行改进,使它对你更加有利。例如,你可以让调用在usp_LogProcedureError过程内发送通告,让那个过程根据发生错误的类型决定问题的严重程度。

这种细小的改进,以及从不同角度考虑如何处理通告,很可能会帮助你发现问题,建立一个更优秀的系统,预防错误发生。


Tim Chapman是肯塔基州路易维尔市一家银行的SQL Server数据库管理员,他有超过7年的IT行业经验。他还通过了微软SQL Server 2000和SQL Server 2005的认证。

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章