定义预定规则

如果您的应用程序支持预定订阅,则必须定义至少一个预定规则。

预定规则是包含一个或多个创建预定订阅通知的 Transact-SQL 查询的命名集。或者,预定规则可以对订阅历史记录中的数据进行操作。预定规则在每个量程期间运行,并仅评估那些计划评估时间在该量程内的订阅。

ms171328.note(zh-cn,SQL.90).gif注意:
触发预定规则的准确计时取决于量程的持续时间。

每个订阅类可以包含一个或多个预定规则。但是,您不能指定预定规则之间的规则触发顺序。预定规则可以按任意顺序触发。

预定规则处理

预定的订阅会在计划时间生成其相关的通知,这些计划时间通常由订阅方在创建订阅时指定。Notification Services 使用以下进程来根据预定规则生成通知:

  1. 事件到达。
  2. Notification Services 为每个事件类创建一个事件批次,然后将每个事件批次插入其各自的事件表中。
  3. Notification Services 针对每个事件类运行事件历史记录规则,这样可更新事件历史记录。
  4. Notification Services 触发预定规则,并仅评估那些该处理的订阅。预定规则对事件历史记录(而不是对那些只包含当前事件批次的事件类视图)进行操作。
  5. 预定规则将结果通知插入通知表中;此数据用于生成和分发通知。

由于通知仅在计划时间生成,因此,预定规则适用于定期信息更新。每日天气预报和每周投资报表都是应使用预定规则的应用程序示例。

定义预定规则

预定规则是订阅类的一部分。当您定义订阅类时,必须定义至少一个规则(预定规则或事件驱动的规则)。若要定义预定规则,请创建一个预定规则项。然后必须提供名称、要执行的操作以及操作的超时值。

定义预定规则

命名预定规则

每个预定规则都必须在应用程序内具有唯一的名称。该名称用来标识每个用于管理用途的规则。

命名预定规则

  • 如果您通过 XML 定义预定规则,则请使用 RuleName Element for ScheduledRule (ADF) 定义预定规则名称。
  • 如果您通过编程方式定义预定规则,则请在 SubscriptionScheduledRule 类 (NMO) 中定义预定规则名称。
  • 如果您通过编程方式定义具有条件操作的预定规则,则请使用 SubscriptionConditionScheduledRule 类 (NMO) 定义预定名称。

定义操作或条件操作

操作是指 Notification Services 在每次触发规则时运行的查询。订阅规则可以包含简单的操作以及更为复杂的条件操作:

  • 操作包含用于根据订阅字段和事件字段之间的匹配来生成通知的 Transact-SQL 查询。当订阅方创建订阅时,他们会定义预定义查询的参数。有关定义简单操作的信息,请参阅定义操作
  • 条件操作也具有 Transact-SQL 查询,但是该查询定义了订阅方可从中定义其订阅的视图。订阅方选择他们感兴趣的字段然后使用预定义的运算符集定义其自己的条件,而不是提供预定义查询的参数。有关定义条件操作的信息,请参阅定义条件操作

指定超时值

操作超时指定完成操作或条件操作中语句的允许时间。如果超时之后语句仍未完成,则 Notification Services 将回滚事务,将预定规则标记为失败,并将错误写入事件日志中。

指定超时值

请参阅

概念

定义事件规则
定义操作
定义条件操作
定义订阅规则
为事件类定义历史记录

帮助和信息

获取 SQL Server 2005 帮助