管理作业自动化
时间:2007-12-23 来源:不详 作者:迈克DB
Public 角色成员可答应执行 sp_addmessage,但是要建立讯息重要层级为 18 以上或将 with_log 设定成 TRUE 的话,您就必须是 sysadmin 角色成员之一。
我们来看看一个使用 sp_addmessage 的例子。下面的陈述式建立一个记录在事件记录当中的新讯息(因为 with_log 被设定成 TRUE):
sp_addmessage 50001, 16,"Customer ID is out of range.", @with_log="TRUE"
GO
事件讯息的警示记录设定
假设一个现有的讯息或是您刚建立的讯息不答应记录(或者您没有包含 with_log 参数),就像下面的例子:
sp_addmessage 50001, 16,"Customer ID is out of range.", @with_log="TRUE"
GO
假如您稍后要记录讯息的话,就必须改变讯息的纪录状态。这样的话,请使用sp_altermessage 设定记录,如下面的例子:
sp_altermessage 50001, WITH_LOG, "TRUE"
GO
另一种方法,您可以在 WITH LOG 选项中使用 RAISERROR 叙述,将讯息回传到应用程序,并回传到应用程序事件记录以及 SQL Server 记录中。例如,下面叙述用重要层级为 16、状态值为 1 来传送讯息 50001,状态(state)是当错误发生在编码中不止一个地方的时候,用来追踪的数字:
RAISERROR (50001, 16, 1) WITH LOG
GO
dedecms.com
________________________________________
相关信息
有关使用 RAISERROR 的更多细节,请参阅< 在线丛书 >索引中的RAISERROR,在 找到的主题 对话框中选择 使用 RAISERROR 。
________________________________________
要改变讯息的记录状态,您可以使用在 master 数据库中的延伸预存程序xp_logevent。使用这个程序时,讯息将被传送到事件记录和 SQL Server 记录中,但不会传送到客户端的应用程序中。下面是使用这个程序的例子:
USE master
GO
xp_logevent 50002, "Customer ID is out of range.", warning
GO
要有前两个参数,并且必须含有使用者定义讯息 ID 编号(一定要大于 50000)和出现在输出纪录的消息正文。第三个参数-重要层级-是选择性的,可以是 informational、warning 或 error 三个字符串之一。重要层级的设定决定了在 Event Viewer 中,讯息之后要出现什么类型的图像,这样才能够很快地识别出警告或者错误。在 Windows 2000 中,信息的讯息有一个蓝色的 i 图像,警告讯息有一个黄色的 ! 图像,而错误讯息有一个红色的 X 图像。假如没有指定重要层级,默认值为 informational。
内容来自dedecms
建立警示
现在我们预备在事件和效能条件上建立警示。要建立警示,您可以使用 Enterprise Manager、T-SQL 或 SQL-DMO。我们将只说明 Enterprise Manager 和 T-SQL 方法,因为 SQL-DMO 超出本书范围。
使用 Enterprise Manager 建立事件警示
在这个例子中,我们将在重要层级为 24 的系统讯息上建立一个警示。讯息在事件记录中以默认值纪录,使用者不需要介入变更它的记录状态。请跟着下面步骤建立事件警示:
1.在 Enterprise Manager 的左边窗格中展开一个服务器数据夹,展开 治理 数据夹,展开 SQL Server代理程序 数据夹。在 警示 上按一下右键,并在快捷菜单上选取 新增警示 ,出现 新增警示属性 窗口,如图31-17所示。在 一般 页签上键入警示的名称(可输入128个字符)。在这个例子中键入『IO_error_alert』。 启用 复选框答应您启用或停用这个警示。停用警示将导致它不被引发,就像停用作业一样。本例中,要确定警示可启用。在 型别 下拉式选单中选择 SQL Server事件警示 ,因为我们要建立警示,而这个警示在某个事件发生时会被解除。(另一种警示类型选项是S QL Server 效能条件警示,这种警示类型的例子将在下一节说明。)我们的例子是要建立当 I/O 错误发生时会解除的警示。
文章评论
共有位Admini5网友发表了评论 查看完整内容