定义事件历史记录规则
事件历史记录规则维护事件历史记录表中的数据。每个事件历史记录都有名称、操作和操作超时。
规则名称
事件历史记录规则名称唯一地标识 Notification Services 应用程序中的规则。规则名称用于命名数据库对象。出于一致性的目的,事件历史记录名称应与事件历史记录表的名称相匹配。
操作
操作包含用于维护历史记录表中数据的代码,操作可将应用程序的数据保持在可用状态。例如,每次处理新事件批次时,操作中的语句可以删除事件历史记录表中的所有现有数据,然后插入新的事件数据。
操作中的语句可以是一个或多个 Transact-SQL 查询,也可以是一个运行存储过程的 Transact-SQL EXECUTE 语句。
每当生成器处理一个事件批次时,操作语句都将运行。这些语句在生成器运行生成通知的订阅规则之前完成。因此,事件历史记录在用于生成通知之前即被更新。
注意: |
---|
如果要在生成通知之后维护历史记录数据,请向订阅事件规则中添加 Transact-SQL 查询或存储过程调用。有关详细信息,请参阅定义事件规则。 |
操作的 Transact-SQL 语句通常从事件类中选择数据,然后在事件历史记录中插入或更新数据。以下示例显示操作的示例 Transact-SQL 语句。这些语句从 StockEvents 事件类选择新数据,并将数据插入 StockEventChron 历史记录。然后,它们将更新历史记录中已有股票的股票价格。
-- Insert New Stock Symbols with Prices
INSERT dbo.StockEventsChron (StockSymbol, StockPrice)
SELECT e.StockSymbol, e.StockPrice
FROM dbo.StockEvents AS e
WHERE e.StockSymbol
NOT IN (SELECT StockSymbol FROM dbo.StockEventsChron);
-- Update Existing Stock Symbols with New Prices
UPDATE dbo.StockEventsChron
SET StockPrice = e.StockPrice
FROM dbo.StockEvents AS e
JOIN dbo.StockEventsChron AS c
ON e.StockSymbol = c.StockSymbol
WHERE e.StockPrice > c.StockPrice;
注意: |
---|
如果在 XML 文件中定义应用程序,则必须用保留的 XML 字符(如“>”)的实体引用将其替换。有关详细信息,请参阅 XML Reserved Characters。 |
操作中的所有语句都是同一事务的一部分。他们将全部完成或全部回滚。
有关创建 Transact-SQL 查询的详细信息,请参阅查询基础知识。
操作超时
操作超时指定在操作中,允许语句执行的时间。如果在发生超时之前,语句的执行未完成,则通知系统将回滚事务,将事件历史记录规则标记为失败并将错误写入事件日志。
注意: |
---|
如果事件历史记录规则失败,则表明维护事件历史记录时出现错误或发生了超时,那么,在同一生成器量程中触发的相关订阅事件规则也将失败。计划规则使用了最新数据,因此它们不会失败。 |
定义事件历史记录规则
事件历史记录规则示例
下列主题提供事件历史记录规则的示例。
请参阅
参考
EventChronicle
EventChronicleRule
EventFieldCollection
概念
其他资源
定义事件类
EventClass Element (ADF)
定义 Notification Services 应用程序
CREATE TABLE (Transact-SQL)
INSERT (Transact-SQL)
SELECT (Transact-SQL)
UPDATE (Transact-SQL)
DELETE (Transact-SQL)