sql 异步捕获表sql数据库修改有什么用

在SQL Server 2005中通过新增的Service Broker可以实现异步觸发器的处理功能。本文提供一种使用Service Broker实现的通用异步触发器方法

在本方法中,通过Service Broker构造异步触发器处理架构对于要使用这种架构的表,只需要创建相应的触发器及处理触发器中sql数据库的存储过程并且在异步触发器架构中登记触发器和处理的存储过程即可。如果一个觸发器中的sql数据库要被多个表使用只需要在dbo.tb_async_trigger_subscribtion中登记相应处理sql数据库的存储过程即可,即一个表的sql数据库变更可以被多个表订阅(使用)

需要配置sql数据库库以允许使用Service Broker。本文以tempdb库为例故配置均在tempdb上下文中进行。

下面的T-SQL创建异步触发器处理架构相关的对象

-- b. 只需要发送消息

-- c. 存储消息的队列

-- d. 用于消息处理的服务

-- 2. 异步触发器处理的对象

-- a. 登记异步触发器的表

-- b. 登记订阅异步触发器的存储过程

-- c. 异步触发器和存储过程の间的订阅关系

-- d. 发送消息的存储过程

-- 消息发出即可, 不需要回复, 因此发出后即可结束会话

-- e. 处理异步触发器发送的消息

-- f. 绑定处理的存储过程到隊列

下面的T-SQL演示使用异步触发器构架。示例中创建了三个表:

在处理时需要把相关的信息登记到异步触发器架构的表中。

-- c. 记录操作的日誌表

-- a. 异步发送处理消息的触发器

-- 将要发送的sql数据库生成xml sql数据库

-- b. 处理异步触发器的存储过程

-- 在异步触发器处理系统中登记对象

下面的T-SQL修改表dbo.t1Φ的sql数据库并检查dbo.t2、dbo.tb_log中的sql数据库,以确定异步触发器架构的工作是否成功

执行完成后可以看到dbo.t2、dbo.tb_log中有相关的记录。

以便有时间处理消息(因为是异步的)

下面的T-SQL删除本文中建立的所有对象

-- 5. 删除相关的对象

-- b. 删除异步触发器处理的相关对象

-- c. 删除测试的对象

}

我要回帖

更多关于 sql数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信